我有一个数据帧(DF),并希望通过将第一列中的NA替换为第二列中的值来组合第一列中的两列。下面是一个示例DF:R结合两个数据帧由NA
structure(list(A = structure(c(3L, 5L, 4L, 2L, 1L, NA, NA, NA,
NA, NA), .Label = c("five", "four", "one", "three", "two"), class = "factor"),
B = structure(c(4L, NA, NA, 2L, NA, 6L, 5L, 1L, 3L, 7L), .Label = c("eight",
"four", "nine", "one", "seven", "six", "ten"), class = "factor")), .Names = c("A",
"B"), row.names = c(NA, -10L), class = "data.frame")
正如您所看到的,DF包含两列中从一到十的数字。
我希望列A中的NAs被列B中的值替换。但只有A的NAs!
我想:
X$A[is.na(X$A)] <- X$B[is.na(X$A)]
但是这给了我一个无效的因素级别的错误警告。
我发现的解决方案主要处理merge()或paste(),但我认为这不会对此有所帮助。欢迎您的建议,如往常一样:)
非常感谢!
是否有必要有因素而不是字符? – digEmAll
不,它不是。应该已经测试过了。抱歉。 –