我在R中有以下提到的数据框:
Id rule1 rule2
o1 1 0
o2 1 1
o3 1 0
o4 0 1
我想再增加一列rule3
,如果Rule1和Rule2为1,则应为b,如果Rule1为0,rule2为1,则应为a,如果Rule 1为1,rule2为0,则应为c。
Id rule1 rule2 rule3
o1 0 1 a
o2 0 1 a
o3 1 1 b
o4 1 0 c
我正在使用以下代码,但无法正常工作。
df1$rule3 <- ifelse(df1$rule1=1 && df1$rule2=1, "c", 0)
以及如何计算基数a,b和c。
在基础R中,使用嵌套ifelse
语句,您可以执行以下操作:
transform(df, rule3 = ifelse(rule1 == 1 & rule2 == 1, 'b',
ifelse(rule1 == 0 & rule2 == 1, 'a',
ifelse(rule1 == 1 & rule2 == 0, 'c', NA))))
# Id rule1 rule2 rule3
#1 o1 0 1 a
#2 o2 0 1 a
#3 o3 1 1 b
#4 o4 1 0 c
数据
df <- structure(list(Id = structure(1:4, .Label = c("o1", "o2", "o3",
"o4"), class = "factor"), rule1 = c(0L, 0L, 1L, 1L), rule2 = c(1L,
1L, 1L, 0L)), row.names = c(NA, -4L), class = "data.frame")
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句