管道内列的顺序总和

时间:2017-09-07 07:12:18

标签: r dplyr

我有一个data.frame,大约有2000列。如何使用data.frame运算符向我的%>%添加其中某些子集的总和?

玩具示例

library(dplyr)
library(magrittr)
set.seed(18)
X<-rnorm(100) %>% array(dim = c(5,20)) %>% data.frame %>% set_colnames(paste0('col',1:20))

我可以计算第3-13列的总和:

X %>% select(col3:col13) %>% rowSums()
[1]  3,5471422  4,1526426 -3,6924671 -1,6106518 -0,6298387

但是如何将其添加到X?这不起作用:

X %>% mutate(col21=select(., col3:col13) %>% rowSums())

当然

X$col21<-X %>% select(col3:col13) %>% rowSums()

有效,但我真的希望使用mutate或其他dplyr动词来允许在一个管道中进行更多操作。

还有一点需要注意:我很清楚num_range功能,但在现实生活中,列名不是col1col2,......,它们可以是任何东西,例如columnanother.columncolumn3

0 个答案:

没有答案