Я работаю над набором данных, где занимаюсь разработкой функций
dataset $ variable1 [dataset $ variable2 == "A"] = "B"
Где я пытаюсь преобразовать переменную1 в B, где бы переменная2 была A. Но вместо этого мой вывод показывает предупреждение, и он делает все значения переменной1 как NA (относящиеся к переменной2 как A), а не B
Где я ошибаюсь?
Я попытался создать образец описанного вами сценария. Какова ваша схема данных?
test1=data.frame(var1=c("a","b","a","a","b","a"),var2=c("a","b","a","b","a","b"),stringsAsFactors = FALSE)
test1$var1[test1$var2= = "a"] = "b"
Не получил ошибку. У меня нет репутации, чтобы комментировать. Можете ли вы описать, что такое сообщение об ошибке? Я отредактирую свой ответ на основе вашего ввода.
Предупреждающее сообщение: - In [ <- .factor '(' температура', набор данных $ variable2 == "A", значение = c (3L, : недопустимый уровень фактора, сгенерировано NA
Используйте stringsAsFactors = FALSE . Проблема в том, что переменная2 была сделана фактором, а «с» не был определенным уровнем.
Подскажите пожалуйста, где в коде упоминать stringsAsFactors=FALSE - набор данных $variable1 [dataset $variable 2 == "A"] = "B"
Пожалуйста, посмотрите мой пример. Когда вы вызываете dataframe , вы передаете его как параметр.
Не могли бы вы воспроизвести свою проблему, поделившись образцом своих данных, чтобы другие могли помочь (пожалуйста, не используйте
str()
,head()
или скриншот)? Вы можете использовать пакетыreprex
иdatapasta
, чтобы помочь вам в этом. См. также Помоги мне Помочь тебе и Как сделать отличный воспроизводимый пример R?