【问题标题】:How to combine and sum two rows in the same dataset using R如何使用 R 组合和求和同一数据集中的两行
【发布时间】:2017-11-25 23:48:33
【问题描述】:

我有一个由两列组成的数据集:“species_id”和“count”。有些物种重复但名称不同,例如:BROC 和 broc。我想将这两行合并为一行并将它们的计数值相加。

目前,我有:

species_id count
BRBL       109
BROC       16
broc       7
BRSP       16

我想要:

species_id count
BRBL       109
BROC       23
BRSP       16

非常感谢!任何帮助将不胜感激。

【问题讨论】:

    标签: r


    【解决方案1】:

    假设名称的差异只是大写/小写,这样的事情可能会起作用:

    library(dplyr)
    df <- data_frame(species_id = c("BROC", "broc"), count = c(16, 7)) #sample data
    df %>% mutate(species_id = toupper(species_id)) %>% 
        group_by(species_id) %>% summarise(count = sum(count))
    

    如果有超出大小写的差异,那么您可能需要在分组之前使用正则表达式和其他数据清理技术,但想法应该是相同的。

    【讨论】:

      【解决方案2】:

      你可以使用

      library(dplyr)
      df = df %>% 
        mutate(species_id = tolower(as.character(species_id))) %>%
        group_by(species_id) %>%
        summarise(total = sum(count)) %>%
        ungroup()
      

      例子:

      df = data.frame(species_id = c("BROC","broc"),count = c(16,7))
      

      应用上面的代码会导致

      # A tibble: 1 x 2
        species_id total
             <chr> <dbl>
      1       broc    23
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-07-30
        • 2012-01-26
        • 2017-07-15
        • 1970-01-01
        • 2018-09-08
        • 1970-01-01
        • 2021-04-01
        相关资源
        最近更新 更多