No entiendo por qué recibí este mensaje de advertencia.
> fixed <- data.frame("Type" = character(3), "Amount" = numeric(3))
> fixed[1, ] <- c("lunch", 100)
Warning message:
In `[<-.factor`(`*tmp*`, iseq, value = "lunch") :
invalid factor level, NA generated
> fixed
Type Amount
1 <NA> 100
2 0
3 0
data.frame()
función (y es predeterminada porque eso es lo que la mayoría de los usuarios desean la gran mayoría de las veces).Si está leyendo directamente desde un archivo CSV, haga lo siguiente.
fuente
stringsAsFactors
-strings
necesita ser plural (@Coliban)Aquí hay un enfoque flexible , se puede utilizar en todos los casos, en particular:
dataframe
se ha obtenido a partir de la aplicación de las operaciones anteriores (por ejemplo, no abrir inmediatamente un archivo , o la creación de una nueva trama de datos).Primero, desfactorice una cadena usando la
as.character
función y, luego, vuelva a factorizar con la funciónas.factor
(o simplementefactor
):fuente
La forma más fácil de solucionar esto es agregar un nuevo factor a su columna. Use la función de niveles para determinar cuántos factores tiene y luego agregue un nuevo factor.
fuente
Tengo un problema similar que los datos recuperados del archivo .xlsx. Desafortunadamente, no pude encontrar la respuesta correcta aquí. Lo manejé solo con dplyr como a continuación, lo que podría ayudar a otros:
Sin embargo, no pude manejarlo con el
readxl
paquete que no tiene un parámetro similar alstringsAsFactors
. Por la razón, me mudé alxlsx
paquete.fuente