【发布时间】:2017-05-05 02:45:18
【问题描述】:
我想这是一个非常基本的问题,但我有点迷茫。我有三个变量:A、B 和 C,范围为 0-4。我想计算等于 1 的总数,并用总和创建一个新变量。例如,如果变量 A 和 B 等于 1,则新变量 SumABC 将等于 2。我尝试使用 mutate 来执行此操作,但我知道必须有更简单的方法。
x <- mutate(z,
SumABC =
ifelse(A == 1, 1,
ifelse(B ==1, 1,
ifelse(C ==1, 1,
ifelse(A ==1 & B ==1, 2,
ifelse(A ==1 & C ==1, 2,
ifelse(B ==1 & C ==1, 2,
ifelse(A ==1 & B ==1 & C == 1, 3, 0))))))))
【问题讨论】:
-
如果您向reproducible example 提供示例输入数据和所需输出以便测试可能的解决方案,则更容易提供帮助。
-
对于名为 z 的 data.frame,可能类似于
rowSums(z[c("A","B","C")] == 1)。
标签: r