Я не понимаю, почему я получил это предупреждение.
> 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()
функции (и это значение по умолчанию, потому что это то, чего большинство пользователей хочет большую часть времени).Если вы читаете прямо из файла CSV, сделайте так.
источник
stringsAsFactors
-strings
должно быть во множественном числе (@Coliban)Вот гибкий подход , его можно использовать во всех случаях, в частности:
dataframe
было получено в результате применения предыдущих операций (например , не сразу открыть файл , или создать новый фрейм данных).Сначала дефакторизуйте строку с помощью
as.character
функции, а затем повторно факторизуйте ее с помощьюas.factor
(или простоfactor
) функции:источник
Самый простой способ исправить это - добавить в столбец новый фактор. Используйте функцию уровней, чтобы определить, сколько факторов у вас есть, а затем добавьте новый фактор.
источник
У меня аналогичная проблема с данными, полученными из файла .xlsx. К сожалению, я не смог найти здесь правильный ответ. Я справился с этим самостоятельно с помощью dplyr, как показано ниже, что может помочь другим:
Однако я не смог справиться с этим с
readxl
пакетом, у которого нет параметра, аналогичного параметруstringsAsFactors
. По этой причине я перешел вxlsx
пакет.источник