最佳答案
我的问题涉及到对一个数据框架的多个列的值进行求和,并使用 dplyr
创建与此求和相对应的新列。列中的数据条目是二进制的(0,1)。我想到的是 dplyr
的 summarise_each
或 mutate_each
功能的行模拟。下面是数据框架的最小示例:
library(dplyr)
df=data.frame(
x1=c(1,0,0,NA,0,1,1,NA,0,1),
x2=c(1,1,NA,1,1,0,NA,NA,0,1),
x3=c(0,1,0,1,1,0,NA,NA,0,1),
x4=c(1,0,NA,1,0,0,NA,0,0,1),
x5=c(1,1,NA,1,1,1,NA,1,0,1))
> df
x1 x2 x3 x4 x5
1 1 1 0 1 1
2 0 1 1 0 1
3 0 NA 0 NA NA
4 NA 1 1 1 1
5 0 1 1 0 1
6 1 0 0 0 1
7 1 NA NA NA NA
8 NA NA NA 0 1
9 0 0 0 0 0
10 1 1 1 1 1
我可以用这样的词:
df <- df %>% mutate(sumrow= x1 + x2 + x3 + x4 + x5)
但这需要写出每一栏的名字,我有大概50栏。 此外,列名称在循环的不同迭代中也会发生变化,我想在循环中实现这一点 操作,所以我想尝试避免给任何列名称。
我怎样才能最有效地做到这一点? 如果您能提供帮助,我将不胜感激。