ifelse NULL:获取数字而不是字符串值
Ifelse NULL: obtaining numeric instead of string values
这似乎很容易做到,但我找不到答案。我的数据框中有两个关于区域名称的变量。我想使用这两个变量创建一个最终的 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是一个字符。
提前致谢!
马文
解决方案是将我的 Area1 变量从因子转换为字符 data$area1<- as.character(data$area1)
。然后 data$areafinal<- with(data, ifelse(is.na(area), area1, area2))
这似乎很容易做到,但我找不到答案。我的数据框中有两个关于区域名称的变量。我想使用这两个变量创建一个最终的 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是一个字符。
提前致谢! 马文
解决方案是将我的 Area1 变量从因子转换为字符 data$area1<- as.character(data$area1)
。然后 data$areafinal<- with(data, ifelse(is.na(area), area1, area2))