我有一个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
功能,但在现实生活中,列名不是col1
,col2
,......,它们可以是任何东西,例如column
,another.column
,column3
。