Não entendo por que recebi essa mensagem de aviso.
> 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()
função (e é padrão porque é isso que a maioria dos usuários deseja na grande maioria das vezes).Se você estiver lendo diretamente do arquivo CSV, faça o seguinte.
fonte
stringsAsFactors
-strings
precisa ser plural (@Coliban)Aqui está uma abordagem flexível , que pode ser usada em todos os casos, em particular:
dataframe
foi obtido a partir de operações de aplicação anteriores (por exemplo, não abrir imediatamente um arquivo , ou a criação de uma nova trama de dados).Primeiro, descompacte uma string usando a
as.character
função e, em seguida, re-fatorize com a funçãoas.factor
(ou simplesmentefactor
):fonte
A maneira mais fácil de corrigir isso é adicionar um novo fator à sua coluna. Use a função de níveis para determinar quantos fatores você possui e adicione um novo fator.
fonte
Eu tenho um problema semelhante que os dados recuperados do arquivo .xlsx. Infelizmente, não consegui encontrar a resposta correta aqui. Eu lidei sozinho com dplyr, como abaixo, o que pode ajudar outras pessoas:
No entanto, eu não poderia lidar com isso com o
readxl
pacote que não possui parâmetro semelhante aostringsAsFactors
. Por esse motivo, mudei para oxlsx
pacote.fonte