首页 > 解决方案 > 如何在r中总结二进制结果

问题描述

我是 R 新手,仍在学习。我有一个这样的数据集

county chemicalA chemicalB chemicalC chemicalD
A           1       0          1         0
B           0       0          0         0
C           1       0          0         0
D           0       1          1         0

我使用代码生成这些二进制变量:

chemicalA=ifelse(Mean.Value_chemicalA>0,1,0)
chemicalA[is.na(chemicalA)]=0

现在我想总结“1”,看看在一个地方检测到多少化学物质。我的理想结果是这样的:

county chemicalA chemicalB chemicalC chemicalD   detection
A           1       0          1         0           2
B           0       0          0         0           0
C           1       0          0         0           1
D           0       1          1         1           3

我努力了

data$detection=chemicalA+chemicalB+chemicalC+chemicalD

但结果只有 2 和 0,我不知道为什么。起初,我认为 ChemicalX 可能不是数字数据,因此我使用了class(). 所有的 chemicalX 变量都返回为numeric

有人可以帮我弄这个吗?谢谢!

标签: r

解决方案


我认为rowSums当行名以相同的前缀开头时效果更好。但如果没有,我们可以试试apply

data$detection=apply(data[,c(1:5)], 1, sum)

推荐阅读