【问题标题】:sum across columns within rows for all columns that start with a specific character string in R [duplicate]在R中以特定字符串开头的所有列的行内列的总和[重复]
【发布时间】:2016-03-12 22:00:32
【问题描述】:

我有一个数据框,在 ID 列中有一组物种 ID,样本 ID 作为单独的列,主题为 CA_**。数据如下:

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

【问题讨论】:

  • 你看过任何教程或尝试过什么吗?
  • @PierreLafortune 你说的这个例子是一个副本,确切地知道提问者想要对哪些行求和。在这种情况下,我不会使我的解决方案和问题有所不同。你能取消标记重复吗?

标签: r


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-07
    • 2023-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-24
    • 1970-01-01
    相关资源
    最近更新 更多