对于以R

时间:2016-03-12 22:00:32

标签: r

我的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命令对列进行求和。

1 个答案:

答案 0 :(得分:4)

我们可以使用grep对列名称以CA_开头的列进行子集化,并使用rowSums获取行的总和。

d$newCol <- rowSums(d[grep('^CA\\_', names(d))])