usar sheet mutate meaning como cheat r dplyr

sheet - Arreglando una "columna desconocida" de advertencia múltiple



tidyr r (7)

Convertir la clase en data.frame resolvió el problema para mí:

library(dplyr) df <- data.frame(id = c(1,1:3), name = c("mary", "jo", "jill","steve")) dfTbl <- df %>% group_by(id) %>% summarize (n = n()) class(dfTbl) # [1] "tbl_df" "tbl" "data.frame" dfTbl = as.data.frame(dfTbl) class(dfTbl) # [1] "data.frame"

Tomó prestado el script parcial de @adts

Tengo una advertencia múltiple persistente de "columna desconocida" para todos los tipos de comandos (por ejemplo, str (x) para instalar actualizaciones en paquetes), y no estoy seguro de cómo depurar esto o solucionarlo.

La "columna desconocida" de advertencia está claramente relacionada con una variable en un tbl_df que renombré, pero la advertencia aparece en todo tipo de comandos que aparentemente no están relacionados con el tbl_df (por ejemplo, instalar actualizaciones en un paquete, str (x) donde x es simplemente un vector de caracteres).


Digamos que quería seleccionar las siguientes columnas.

best.columns = ''id''

Para mí, lo siguiente dio la advertencia:

df%>% select_(one_of(best.columns))

Si bien esto funcionó como se esperaba, aunque, hasta donde yo sé dplyr , esto debería ser idéntico.

df%>% select_(.dots = best.columns)


He estado encontrando el mismo problema, y ​​aunque no sé por qué ocurre, he podido precisar cuándo ocurre, y así evitar que suceda.

El problema parece ser la adición de una nueva columna, derivada de la indexación, en un marco de datos base R frente a un marco de datos tibble. Tome este ejemplo, donde agrega una nueva columna ( age ) a un marco de datos base R:

base_df <- data.frame(id = c(1:3), name = c("mary", "jill","steve")) base_df$age[base_df$name == "mary"] <- 47

Eso funciona sin devolver una advertencia. Pero cuando se hace lo mismo con un tibble, arroja una advertencia (y, en consecuencia, creo que está causando el extraño, aparentemente no provocado, problema de advertencia múltiple):

library(tibble) tibble_df <- tibble(id = c(1:3), name = c("mary", "jill","steve")) tibble_df$age[tibble_df$name == "mary"] <- 47 Warning message: Unknown column ''age''

Seguramente hay mejores formas de evitar esto, pero he descubierto que crear un vector de NA hace el trabajo:

tibble_df$age <- NA tibble_df$age[tibble_df$name == "mary"] <- 47


Me he enfrentado a este problema al usar el paquete "dplyr".
Para aquellos que enfrentan este problema después de usar la función "group_by" en la biblioteca "dplyr":

Descubrí que desagrupar las variables resuelve el problema de advertencia de columna desconocida. A veces he tenido que repetir la desagrupación varias veces hasta que se resuelve el problema.


También me encontré con este problema, excepto a través de un tibble creado con un bloque dyplyr. Aquí hay una ligera modificación del código de sabre para mostrar cómo llegué al mismo error.

library(dplyr) df <- data.frame(id = c(1,1:3), name = c("mary", "jo", "jill","steve")) t <- df %>% group_by(id) %>% summarize (n = n()) t str(t) t$newvar[t$id==1] <- 0


Tuve este problema al tratar las funciones tibble y lapply juntas. El tibble parecía guardar cosas como una lista dentro del marco de datos.

Lo resolví usando unlist antes de agregar los resultados de una función de lapply al tibble.


Actualización: Este problema fue parcialmente solucionado en este commit en RStudio v1.1.103 o posterior por @kevin-ushey . Todavía aparece (aunque con menos frecuencia).

Este es un problema con la herramienta de diagnóstico en RStudio (la herramienta que muestra advertencias y posibles errores en su código).

https://support.rstudio.com/hc/en-us/community/posts/115001180488-Diagnostics-and-tibble-warning

Como solución alternativa, puede agregar al comienzo de los archivos abiertos:

# !diagnostics off

Luego guarde los archivos y las advertencias deberían dejar de aparecer.

También puede deshabilitar los diagnósticos en Preferencias / Código / Diagnósticos.

Creo que las advertencias aparecen porque la herramienta de diagnóstico en RStudio analiza el código fuente para detectar errores y cuando realiza las verificaciones de diagnóstico, accede a columnas en su tibble que no están inicializadas, dando la Advertencia que vemos. Las advertencias no aparecen porque ejecuta cosas no relacionadas, aparecen cuando se ejecutan los diagnósticos de RStudio (cuando se guarda un archivo, luego se modifica, cuando ejecuta algo ...).