这似乎很容易做到,但我找不到答案。我的数据框中有两个关于区域名称的变量。我想使用这两个变量创建一个最终的Area变量。如果缺少Area2,则仅使用Area1值,但是如果不缺少Area2,则使用Area2值。
Area Area2 Goal
ABC ABC
ABC ABC
AAA AAA AAA
AA-A AAA AAA
A AA AAA AAA
data <- data.frame(Area1 = c("ABC", "ABC", "AAA", "AA-A", "A AA"),
Area2 =c("", "", "AAA", "AAA", "AAA"))
下面是我尝试过的方法,但是我正在获取最终变量的数字值而不是字符串值(甚至使用as.factor选项)。
data$AreaFinal <- ifelse(is.na(data$Area2), data$Area1, data$Area2)
data$AreaFinal <- ifelse(is.na(data$Area2), as.factor(data$Area1), data$Area2)
此代码看起来还可以吗?在我的实际数据中,区域1是一个因素,区域2是一个字符。
先谢谢您! 马文
答案 0 :(得分:0)
解决方案是将Area1变量从factor转换为字符data$area1<- as.character(data$area1)
。然后data$areafinal<- with(data, ifelse(is.na(area), area1, area2))