我的问题涉及跨数据框的多个列求和,并使用来创建与该求和相对应的新列dplyr
。列中的数据条目为binary(0,1)。我正在考虑的summarise_each
或mutate_each
函数的逐行模拟dplyr
。以下是数据框的最小示例:
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列。另外,列名会在要实现此操作的循环的不同迭代中更改,因此我想尽量避免必须提供任何列名。
我怎样才能最有效地做到这一点?任何帮助将不胜感激。
dplyr
呢 为什么不只是df$sumrow <- rowSums(df, na.rm = TRUE)
从R开始的简单?或者,df$sumrow <- Reduce(`+`, df)
如果您想复制所做的确切操作dplyr
。