¿Por qué está doblando () devuelve una variable de factor? -- r campo con dplyr campo con double campo con mutate camp Relacionados El problema

Why is.double() returns a factor variable?


1
vote

problema

Español

La función is.double() devuelve un factor variables. Aquí está el código y su salida:

  df <- data.frame(City = c("A","B","A","C","A","B"),  Empl = c(3,6,3,2,6,8), UnEmpl = c(4,7,5,6,3,1))  select_if(df, is.double)   

Esto es lo que obtenemos, todas las variables double se devuelven:

  Empl UnEmpl <dbl> <dbl> 3   4            6   7            3   5            2   6            6   3            8   1      

después de algunas operaciones

  df <- df %>% group_by(City) %>% mutate(total = sum(Empl,UnEmpl)) select_if(df, is.double)   

Esto es lo que obtenemos, city es una variable 9988777668 pero aún devuelta por la función is.double()

  is.double()0  
Original en ingles

The is.double() function returns a factor variables. Here is the code and it's output:

df <- data.frame(City = c("A","B","A","C","A","B"),  Empl = c(3,6,3,2,6,8), UnEmpl = c(4,7,5,6,3,1))  select_if(df, is.double) 

This is what we get, all double variables are returned:

Empl UnEmpl <dbl> <dbl> 3   4            6   7            3   5            2   6            6   3            8   1    

after some operations

df <- df %>% group_by(City) %>% mutate(total = sum(Empl,UnEmpl)) select_if(df, is.double) 

This is what we get, city is a factor variable but still returned by the function is.double()

City    Empl  UnEmpl total <fctr>  <dbl> <dbl>  <dbl> A   3   4   24   B   6   7   22   A   3   5   24   C   2   6   8    A   6   3   24   B   8   1   22 
           
 
 

Lista de respuestas

0
 
vote
vote
La mejor respuesta
 

actualización

La documentación de select_if() dice explícitamente las variables de agrupación siempre se mantienen. También puede comprobar esta página de github de los autores de dplyr . Eventualmente, desagrupar el nuevo df con ungroup() hace el truco.

  library(dplyr) df <- data.frame(City = c("A","B","A","C","A","B"),                   Empl = c(3,6,3,2,6,8),                   UnEmpl = c(4,7,5,6,3,1))  select_if(df, is.double)  > select_if(df, is.double)   Empl UnEmpl 1    3      4 2    6      7 3    3      5 4    2      6 5    6      3 6    8      1  df <- df %>%    group_by(City) %>%    mutate(total = sum(Empl,UnEmpl))  > select_if(ungroup(df), is.double)   Empl UnEmpl total 1    3      4    24 2    6      7    22 3    3      5    24 4    2      6     8 5    6      3    24 6    8      1    22    

Para concluir, lo que observa es el comportamiento previsto.

 

UPDATE

The documentation of select_if() explicitly says the grouping variables are always retained. You can also check this Github page from the authors of dplyr. Eventually, ungrouping the new df with ungroup() does the trick.

library(dplyr) df <- data.frame(City = c("A","B","A","C","A","B"),                   Empl = c(3,6,3,2,6,8),                   UnEmpl = c(4,7,5,6,3,1))  select_if(df, is.double)  > select_if(df, is.double)   Empl UnEmpl 1    3      4 2    6      7 3    3      5 4    2      6 5    6      3 6    8      1  df <- df %>%    group_by(City) %>%    mutate(total = sum(Empl,UnEmpl))  > select_if(ungroup(df), is.double)   Empl UnEmpl total 1    3      4    24 2    6      7    22 3    3      5    24 4    2      6     8 5    6      3    24 6    8      1    22  

To conclude, what you observe is the intended behavior.

 
 
         
         

Relacionados problema

0  Crear una función para normalizar las columnas al valor más temprano usando TIMEDEDE?  ( Create a function to normalize columns to earliest value using tidyverse ) 
Los datos de datos con los que trabajo tienen un número arbitrario de variables y son de longitud arbitraria. Me gustaría crear una función para normalizar ca...

1  ¿Cómo calcular la entalpía mediante el uso de Mutate para cada columna en R?  ( How to calculate enthalpy by using mutate for each column in r ) 
Me gustaría calcular entalpy usando función de tabla de vapor . Quiero adaptar la función a una tabla de tormentos que incluyen temperatura y presión, pero f...

0  r dplyr combinando mutate_at, vars (Finalter_with), IFELSE,! IS.NA  ( R dplyr combining mutate at varsends with ifelse is na ) 
Hola Tengo 10 variables con el mismo final y estoy tratando de usar mutate_at para crear una nueva variable basada en los datos en esas variables y asignarla ...

0  str_replace dentro de un mutado sobre una lista o un conjunto de datos en r  ( Str replace within a mutate over a list or a dataset in r ) 
Me gustaría agregar un cargador a una fila dentro de un conjunto de datos basado en otro conjunto de datos. Así que tengo dos conjuntos de datos, uno llamado ...

0  Función para mutar varias filas en un tormento, tomando la cantidad de filas de otra tormenta  ( Function to mutate a number of rows in a tibble taking the number of rows from ) 
Estoy buscando hacer algo que se vea simple, pero no puede obtener la salida que quiero Tengo un montón de observación con día, categorías y color obs...

0  dplyr mutate: la indexación recursiva falló  ( Dplyr mutate recursive indexing failed ) 
Tengo un problema con Mutate y una función auto-escrita. Mis datos son básicamente de la siguiente manera: license_sets <- list(x = c("A", "B"), y = c("C",...

0  ¿Cómo creo una nueva variable basada en dos valores categóricos en R?  ( How do i create a new variable based on two categorical values in r ) 
Tengo una variable de estado "strong> marital , con valores posibles" casados ​​"" divorciados "" viudos "" separados "" nunca casados ​​"", parte de una pare...

1  Usando lappy con mutado en r [duplicado]  ( Using lapply with mutate in r ) 
Esta pregunta ya tiene respuestas aquí : Mutate múltiples columnas en un contexto de datos ...

0  ¿Por qué los datos modificados / FCT_RELEVEL DE MUTATE / FCT_RELEVEL de Tidyverd se encuentran más allá de las posiciones X-BIN?  ( Why has tidyverses mutate fct relevel changed data beyond just x bin positions ) 
Tengo un conjunto de datos de biomasa simple. En un marco, he usado FCT_RELEVEL en las categorías de tratamiento para reorganizarlas en el eje X como "bajo, m...

88  dplyr mutate con valores condicionales  ( Dplyr mutate with conditional values ) 
En un fábrico de datos grande ("MyFile") con cuatro columnas, tengo que agregar una quinta columna con valores condicionalmente en función de las primeras cua...




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