R - 和向量匹配的名字

R - sum vectors matching names

我需要对 table 中名称以特定字符串开头的列求和。

一个例子 table 可能是:

tbl<-data.frame(num1=c(3,2,9), num2=c(3,2,9),n3=c(3,2,9),char1=c('a', 'b', 'c'))

我得到列的列表(在这个例子中我只写了 2,但实际情况有更多 tan 20)。

a<-colnames(tbl)[grep('num', colnames(tbl))]

我试过

sum(tbl[,a])

但是我只得到一个数字,它是两个向量中元素的总和。

我需要的结果是:

tbl$num1+ tbl$num2

我们可以使用 Reduce

 Reduce(`+`, tbl[a])

rowSumsrowSums 还可以选择使用 na.rm=TRUE.

删除 NA 元素
rowSums(tbl[a])