Usos múltiples condiciones en Select (DplyR) -- r campo con select campo con dplyr camp Relacionados El problema

Usings multiple conditions in select (dplyr)


0
vote

problema

Español

Quiero elegir ciertas columnas de un contexto de datos con Widget _handleAuth() { return StreamBuilder<User>( stream: FirebaseAuth.instance.authStateChanges(), builder: (BuildContext context, snapshot) { return (!snapshot.hasData) ? LoginPage() : HomePage(); }, ); } 0 usando Widget _handleAuth() { return StreamBuilder<User>( stream: FirebaseAuth.instance.authStateChanges(), builder: (BuildContext context, snapshot) { return (!snapshot.hasData) ? LoginPage() : HomePage(); }, ); } 1111 Más que las. Sé que hay otras formas de resolverlo, pero me pregunto si esto es posible dentro Widget _handleAuth() { return StreamBuilder<User>( stream: FirebaseAuth.instance.authStateChanges(), builder: (BuildContext context, snapshot) { return (!snapshot.hasData) ? LoginPage() : HomePage(); }, ); } 2 . un ejemplo:

  Widget _handleAuth() {     return StreamBuilder<User>(       stream: FirebaseAuth.instance.authStateChanges(),       builder: (BuildContext context, snapshot) {         return (!snapshot.hasData)             ? LoginPage()             : HomePage();       },     );   } 3  

Esto proporciona un error, pero me gustaría que la función diera Widget _handleAuth() { return StreamBuilder<User>( stream: FirebaseAuth.instance.authStateChanges(), builder: (BuildContext context, snapshot) { return (!snapshot.hasData) ? LoginPage() : HomePage(); }, ); } 4 .

Esperaba que Widget _handleAuth() { return StreamBuilder<User>( stream: FirebaseAuth.instance.authStateChanges(), builder: (BuildContext context, snapshot) { return (!snapshot.hasData) ? LoginPage() : HomePage(); }, ); } 5 permitiría un APRACH SIMILIAR AS Widget _handleAuth() { return StreamBuilder<User>( stream: FirebaseAuth.instance.authStateChanges(), builder: (BuildContext context, snapshot) { return (!snapshot.hasData) ? LoginPage() : HomePage(); }, ); } 6 donde podemos configurar múltiples condiciones con los operadores, es decir, algo así como Widget _handleAuth() { return StreamBuilder<User>( stream: FirebaseAuth.instance.authStateChanges(), builder: (BuildContext context, snapshot) { return (!snapshot.hasData) ? LoginPage() : HomePage(); }, ); } 7 . < / p>

editar

Me doy cuenta de que mi pregunta es más general y me pregunto si es posible pasar cualquier combinación en Widget _handleAuth() { return StreamBuilder<User>( stream: FirebaseAuth.instance.authStateChanges(), builder: (BuildContext context, snapshot) { return (!snapshot.hasData) ? LoginPage() : HomePage(); }, ); } 8 , como Widget _handleAuth() { return StreamBuilder<User>( stream: FirebaseAuth.instance.authStateChanges(), builder: (BuildContext context, snapshot) { return (!snapshot.hasData) ? LoginPage() : HomePage(); }, ); } 9 , y así sucesivamente. Pero no se puede averiguar cómo hacer tal función.

Original en ingles

I want to choose certain columns of a dataframe with dplyr::select() using contains() more than ones. I know there are other ways to solve it, but I wonder whether this is possible inside select(). An example:

df <- data.frame(column1= 1:10, col2= 1:10, c3= 1:10) library(dplyr) names(select(df, contains("col") & contains("1"))) 

This gives an error but I would like the function to give "column1".

I expected that select() would allow a similiar appraoch as filter() where we can set multiple conditions with operators, i.e. something like filter(df, column1 %in% 1:5 & col2 != 2).

EDIT

I notice that my question is more general and I wonder whether it is possible to pass any combinations in select(), like select(df, contains("1") | !starts_with("c")), and so on. But can't figure out how to make such a function.

        
 
 

Lista de respuestas

4
 
vote
vote
La mejor respuesta
 

Puede usar select_if y grepl

  library(dplyr)  df %>%  select_if(grepl("col", names(.)) & grepl(1, names(.)))   #   column1 #1        1 #2        2 #3        3 #4        4 #5        5 #6        6 #7        7 #8        8 #9        9 #10      10   

Si desea utilizar select con contains podría hacer algo como esto:

  df %>%  select(intersect(contains("col"), contains("1")))   

Esto se puede combinar de otras maneras, como se mencionó en los comentarios:

  df %>%  select(intersect(contains("1"), starts_with("c")))   
 

You can use select_if and grepl

library(dplyr)  df %>%  select_if(grepl("col", names(.)) & grepl(1, names(.)))   #   column1 #1        1 #2        2 #3        3 #4        4 #5        5 #6        6 #7        7 #8        8 #9        9 #10      10 

If you want to use select with contains you could do something like this:

df %>%  select(intersect(contains("col"), contains("1"))) 

This can be combined in other ways, as mentioned in the comments:

df %>%  select(intersect(contains("1"), starts_with("c"))) 
 
 
       
       
2
 
vote

También puede cadenar dos select Llamadas:

  library(dplyr)  df <- data.frame(column1 = 1:10, col2 = 1:10, c3 = 1:10)  df %>%    select(contains("col")) %>%    select(contains("1"))   

no demasiado elegante para los amantes de una línea

 

You can also chain two select calls:

library(dplyr)  df <- data.frame(column1 = 1:10, col2 = 1:10, c3 = 1:10)  df %>%    select(contains("col")) %>%    select(contains("1")) 

Not too elegant for one-line lovers

 
 
0
 
vote

Puede usar la función df %>% select(intersect(contains("1"), starts_with("c"))) 9

grepl0

 

You could use the dplyr::intersect function

select(df, intersect(contains("col"), contains("1")))

 
 

Relacionados problema

0  Expandir los programas de datos de datos `X` no es un error de secuencia regular  ( Expand dataframe shows x is not a regular sequence error ) 
Estoy teniendo problemas para expandir el siguiente contexto de datos. CREATE TABLE Cal_3Month ( ColID int, ColDate timestamp, ColValue bigint ); INSERT I...

3  Shiny: Dplyr devuelve los mensajes de error  ( Shiny dplyr returns error messages ) 
Uso de --------------------------- Error --------------------------- File: "G:programmingv2wwbasewindow.h" Function: _fakeWndProc Line: 61 Error Code: 1410 E...

0  R: Convierta la frecuencia al porcentaje con solo un número seleccionado de columnas  ( R convert frequency to percentage with only a selected number of columns ) 
Me gustaría convertir un contexto de datos lleno de frecuencias en un contexto de datos lleno de porcentaje por fila usando dplyr. Mi conjunto de datos tien...

1  Filtrando cada columna de un marco de datos un PUT NA para valores inigualables  ( Filtering each column of a data frame an put na for unmatched values ) 
Tengo una tabla de la siguiente manera: [,1] [,2] [,3] [,4] [,5] [1,] a A 0.06 0.31 -1.5 [2,] b B -0.75 0.2 0.02 [3,] ...

0  ¿Hay alguna manera de optimizar esta declaración: selección de valores de un vector  ( Is there a way to optimize this statement selection of values from a vector ) 
Tengo este código y desde longitud (nodos_data_frame_name) es en realidad alrededor de 4398886 y puede ser mucho más grande y tengo que ejecutar esta oper...

1  Uso de R y PURR para unirse a varios cuadros de datos utilizando una lista de listas con PMAP  ( Using r and purrr to join multiple dataframes using a list of lists with pmap ) 
Estoy tratando de unir los cuadros de datos que están incrustados en una lista con PMAP. BasicDBObject query = new BasicDBObject("metadata", new BasicDBObj...

4  Mutate una variable con rizado-rizado [duplicado]  ( Mutate a variable with curly curly ) 
Esta pregunta ya tiene respuestas aquí : Use los nombres de variables dinámicos en `dplyr` ...

0  ¿Cómo uso DPLYR para filtrar a una variable global predefinida?  ( How do i use dplyr to filter to a pre defined global variable ) 
Digamos que tengo el siguiente escenario. Mi conjunto de datos cambia mensualmente a donde usa el último día del mes + "registro creado". Para evitar cambia...

0  Uniéndose a dos marcos de datos con IDEED_JOIN () [DUPLICADO]  ( Joining two data frames with left join ) 
Esta pregunta ya tiene respuestas aquí : Cómo unirse (fusionar) Marcos de datos (interiores, exterio...

0  Cambiar columna basada en casos coincidentes en R  ( Change column based on matched cases in r ) 
Tengo un archivo. Frame que se ve así data=data.frame(time=c(1,1,0.5,1), columnB= c(1,2,5,6), columnC= c(1,2,2,5)) time columnB columnC 1.0 ...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos