У меня есть ниже набор данных, который построен изОбъединение столбцов два фактора/символов в одном столбец
help <- data.frame(var1 = c("red", NA, NA, NA, "red", "orange"),
var2 = c(NA, "lightred", "blue", "lightred", NA, NA))
var1 var2
1 red <NA>
2 <NA> lightred
3 <NA> blue
4 <NA> lightred
5 red <NA>
6 orange <NA>
И я застрял пытаюсь сделать новую переменную newvar
, что просто сливает переменный фактор в одну новую колонку , Я надеюсь, чтобы получить выход следующим
var1 var2 newvar
1 red <NA> red
2 <NA> lightred lightred
3 <NA> blue blue
4 <NA> lightred lightred
5 red <NA> red
6 orange <NA> orange
Здесь была моя попытка на основе других потоков здесь
help$newvar = ifelse(help$var1 == "", help$var2, help$var1)
Когда переменные факторы, то newvar
являются числами, что имеет смысл, но только переменные из var1
перейти на newvar
. Когда символ, снова только символы от var1
перейдите на newvar
.
Я знаю, что подобные вопросы были заданы, но ответы, похоже, не исправили эту проблему. Merge two factor columns in R
Есть ли способ сделать это в dplyr тоже? Я возьму любое решение, которое я смогу получить, просто любопытно.
Я не вижу пробелов в вашем 'var1', я вижу отсутствующие значения. Используйте 'is.na (help $ var1)' вместо 'help $ var1 ==" "'. – Gregor
Другая опция 'apply (help, 1, na.omit)' –