使用数据框中的出现次数进行变异 - R.

时间:2017-02-01 00:24:07

标签: r dplyr

我有一个数据框如下。我想计算每行1的出现次数并插入一个包含该信息的新列:

df1

    Cluster a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 
1      C1    0  1  1  1  0  1  1  1  1  1   1   
2      C2    0  1  1  1  0  1  1  1  1  1   1   
3      C3    0  1  0  0  0  0  1  0  0  0   0   
4      C4    0  1  1  1  0  1  1  1  1  1   1   
5      C5    0  1  1  1  0  1  1  1  1  1   1

我希望结果如下:

df1

    Cluster a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10  X 
1      C1    0  1  1  1  0  1  1  1  1  1   1  9   
2      C2    0  1  1  1  0  1  1  1  1  1   1  9 
3      C3    0  1  0  0  0  0  1  0  0  0   0  2 
4      C4    0  1  1  1  0  1  1  1  1  1   1  9 
5      C5    0  1  1  1  0  1  1  1  1  1   1  9

我更喜欢在mutate

中使用dplyr函数

2 个答案:

答案 0 :(得分:5)

我喜欢在select_if中使用rowSums来概括链。

修改:如果您需要解决NA值,请使用na.rm

中的rowSums选项
df1 %>% 
   mutate(X = rowSums(select_if(., is.numeric) == 1, na.rm = TRUE))

答案 1 :(得分:1)

可能不一般。但这应该适用于您的情况:

.keyCode