【问题标题】:Sumproduct in R using dplyr使用 dplyr 在 R 中求和
【发布时间】:2022-06-29 21:03:39
【问题描述】:

使用 dplyr,我试图在 R 的两列中求和,因为它可以在 Excel 中完成,但是虽然我尝试了几种方法,但都没有正常工作。

我的一小部分数据框(大约 61000 行和 20 列)如下所示:

df <-structure(list(dem_sect = structure(c(4L, 4L, 4L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L), .Label = c("AB", 
"EP", "FE", "MF", "PA"), class = "factor"), cod_estr = c("a", 
"a", "b", "b", "c", "b", "b", "b", "a", "b", "c", "b", "b", "a", 
"b", "c", "c", "b", "c"), sect_estr = structure(c(10L, 10L, 11L, 
11L, 12L, 11L, 11L, 11L, 10L, 11L, 12L, 11L, 11L, 10L, 11L, 12L, 
12L, 11L, 12L), .Label = c("ABa", "ABb", "ABc", "EPa", "EPb", 
"EPc", "FEa", "FEb", "FEc", "MFa", "MFb", "MFc", "PAa", "PAb", 
"PAc"), class = "factor"), area = c(14L, 14L, 24L, 24L, 11L, 
24L, 24L, 24L, 14L, 24L, 11L, 24L, 24L, 14L, 24L, 11L, 11L, 24L, 
11L), kg_med = c(5.88125, 5.88125, 6.8505, 6.8505, 
3.0852, 6.8505, 6.8505, 6.8505, 5.88125, 6.8505, 3.0852, 6.8505, 
6.8505, 5.88125, 6.8505, 3.0852, 3.0852, 6.8505, 3.0852)), class = "data.frame", row.names = c(NA, 
-19L))

我想添加一个新列(例如称为 sumprod),它是 "area"unique 值的 sumproduct > 和 "kg_med""dem_sect"

分组

预期输出将是一个值为 280.69 的列(如果我在 Excel 中正确计算)

我们非常欢迎任何帮助。提前致谢。

【问题讨论】:

    标签: r dplyr sumproduct


    【解决方案1】:
    library(tidyverse)
    
    df %>% 
      group_by(dem_sect) %>% 
      summarise(sumproduct = sum(area * kg_med))
    
    #> # A tibble: 1 × 2
    #>   dem_sect sumproduct
    #>   <fct>         <dbl>
    #> 1 MF            2143.
    

    【讨论】:

      猜你喜欢
      • 2019-07-03
      • 2018-03-04
      • 1970-01-01
      • 1970-01-01
      • 2018-05-15
      • 1970-01-01
      • 2020-08-08
      • 2015-03-20
      • 2018-04-17
      相关资源
      最近更新 更多