【发布时间】:2015-09-30 20:05:27
【问题描述】:
我有以下由
构建的数据集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 == ""。 -
另一个选项
apply(help, 1, na.omit)