我的ID
列中包含一组物种ID的数据框,以及带有motif CA_**
的单独列的样本ID。数据如下所示:
ID <- c('A','B','C')
CA_01 <- c(3,9,54)
CA_56 <- c(2,7,12)
CA_92 <- c(45,4,47)
d<- data.frame(ID,CA_01,CA_56,CA_92)
ID CA_01 CA_56 CA_92
A 3 2 45
B 9 7 4
C 54 12 47
我希望对每行中的列进行求和,并生成一个新列,即每个物种ID在样本列中的总丰度(最终值50,20,113)。此外,我的实际数据框中还有许多其他列。我只想对以CA_**
开头的列进行求和。
注意:这与提问here的问题不同,因为提问者知道提问者想要求和的列的位置。我的例子我只知道列以主题CA_
开头。我不知道这些立场。问题here也有所不同,因为我特别询问如何根据grep
命令对列进行求和。
答案 0 :(得分:4)
我们可以使用grep
对列名称以CA_
开头的列进行子集化,并使用rowSums
获取行的总和。
d$newCol <- rowSums(d[grep('^CA\\_', names(d))])