想要基于五种不同语句创建使用ifelse的列。在嵌套ifelse中正确使用“不是”“或”“”AND“布尔值
陈述:
- 如果状态= “N” 和 “region_1” 是 “00” 或 “99”,粘贴 “region_2”
- 如果状态=“ N“and”region_1“is NOT”00“or”99“,paste”region_1“
- 如果状态= “T”,粘贴 “region_1”
- 如果状态= “3”,粘贴 “区域”
- 如果状态= “W” 和 “region_1” 是NOT “ED”, “FL”, “SG”, “SY”, “XP”, “AL”, “公司”, “EB” 或 “AB”,贴 “region_1”
模拟数据:
state = c("T","3","W", "W","W","W","W","N","N","N","Q","Q","N","Q")
region = c("CD","AB","IC","IS", "IE", "IF", "IA", "A2", "A9", "A9", "GW", "AW", "K0", "DW")
region_1 = c("DG","BC","CL","SY","ED", "FL", "AL", "23", "99", "99", "WB", "WD", "02", 'WW')
region_2 = c("00", "D1", "05", "00", "00", "01", "59", "00", "23", "24", '03', "03", "37", "03")
a <- data.frame(state, region, region_1, region_2)
我试图解决:
library(dplyr)
b <- a %>% mutate(t = ifelse(state == "N" & region_1 == "99" | state == "N" & region_1=="00" , region_2,
ifelse(state == "N" & region_1 != "99" | state == "N" & region_1 != "00", region_1,
ifelse(state == "T", region_1,
ifelse(state == "3", region,
ifelse(state == "W" & region_1 != "ED" | state == "W" & region_1 != "FL" | state == "W" & region_1 != "SG" | state == "W" & region_1 != "SY" | state == "W" & region_1 != "XP" | state == "W" & region_1 != "AL" | state == "W" & region_1 != "AG" | state == "W" & region_1 != "EB" | state == "W" & region_1!= "AB", region_1,
NA))))))
问题
输出与state == "w"
代码的问题。它不认可我的企图“不是”并且粘贴"region_1"
而不是NA
(见线4:7)。这可能与state == "N"
一样,但是,模拟数据中不满足条件。寻找解决方案。
谢谢,这正是需要的。 –
乐意提供帮助。如果此答案或任何其他人解决了您的问题,请将其标记为已接受:) – BonStats