【发布时间】:2016-11-18 03:49:23
【问题描述】:
我很好奇如何解决这个问题。我有这样的数据框:
a b
1 0
1 0
0 1
1 1
0 0
1 0
然后输出有一个基于“a”和“b”值的额外列:
如果(a==1&b==1)c=1,如果(a==1&b==0)c=2,如果(a==0&b==1)c=3,否则c=4。
a b c
1 0 2
1 0 2
0 1 3
1 1 1
0 0 4
1 0 2
有什么想法吗?我不会用嵌套的 if-else 编写 for 循环,我们怎么去向量化?谢谢!
【问题讨论】:
-
df$c=ifelse(df$a==1 &df$b==1, 1, ifelse(df$a==1 & df$b==0, 2, ifelse(df $a==0 & df$b==1, 3, 4)))
-
好点!我完全忘记了这个......谢谢
-
也请查看
switch() -
Base R 还是来自包?
-
df$c <- 4 - 2 * df$a - df$b