R中不同行中相同字符串的总和

时间:2018-11-21 12:37:24

标签: r

我要计算相同字符串值的总和。这是我的数据集:

trp_str <-  structure(
  list(
    V1 = list(
      c("Hll Wallet Moods Choco 10’s Pic",
        "Hll Wallet Moods Climaxdelay10’spic",
        "Hll Wallet Moods Rose 10’s Pic"), 
      c("Meninokki Duplex", 
        "Santhigiri 450 Ml * 12 Nos Carton", 
        "Santhigiri Dahasanthi Master Carton"), 
      c("BIG CUP UNIT CARTON",
        "Merriboy Big Cup Carton", 
        "Merriboy Party Cup Carton"), 
      c("BIG CUP UNIT CARTON",
        "Merriboy Big Cup Carton",
        "Merriboy Party Cup Carton"), 
      c("Santhigiri 450 Ml * 12 Nos Carton",
        "Santhigiri Dahasanthi Master Carton", 
        "Meninokki Duplex"), 
      c("Hll Wallet Moods Choco 10’s Pic",
        "Hll Wallet Moods Climaxdelay10’spic", 
        "Hll Wallet Moods Rose 10’s Pic")
    ), 
    V2 = list(
      0.0712871287128713, 
      0.0633663366336634, 
      0.0475247524752475, 
      0.0475247524752475, 
      0.0633663366336634, 
      0.0712871287128713
    )
  ), 
  row.names = c(2L, 4L, 8L, 11L, 12L, 13L), 
  class = "data.frame"
)

我想要这样:

1   Santhigiri 450 Ml * 12 Nos Carton, Santhigiri Dahasanthi Master Carton, Meninokki Duplex 0.14257426
2   Meninokki Duplex, Santhigiri 450 Ml * 12 Nos Carton, Santhigiri Dahasanthi Master Carton  0.06336634
3   BIG CUP UNIT CARTON, Merriboy Big Cup Carton, Merriboy Party Cup Carton 0.0950495
4   Santhigiri 450 Ml * 12 Nos Carton, Santhigiri Dahasanthi Master Carton, Meninokki Duplex  0.06336634

当我使用以下函数时,R会引发错误:

trp_str%>% group_by(V1) %>% summarise(Total = sum(V2)) show 

> Error in grouped_df_impl(data, unname(vars), drop) : 
> Column `V1` can't be used as a grouping variable because it's a list

1 个答案:

答案 0 :(得分:1)

您需要将V1转换为字符串并将V2转换为数字。因此,根据您的预期答案,您可以执行以下操作:

 trp_str %>% 
   mutate( V2 = as.numeric(V2), V1 = sapply(V1, function(x) toString(x)) ) %>%
   as_tibble() %>% 
   group_by(V1) %>% 
   summarise(sum = sum(V2))

# A tibble: 4 x 2
  V1                                                                                                      sum
  <chr>                                                                                                 <dbl>
1 BIG CUP UNIT CARTON, Merriboy Big Cup Carton, Merriboy Party Cup Carton                              0.0950
2 Hll Wallet Moods Choco 10’s Pic, Hll Wallet Moods Climaxdelay10’spic, Hll Wallet Moods Rose 10’s Pic 0.143 
3 Meninokki Duplex, Santhigiri 450 Ml * 12 Nos Carton, Santhigiri Dahasanthi Master Carton             0.0634
4 Santhigiri 450 Ml * 12 Nos Carton, Santhigiri Dahasanthi Master Carton, Meninokki Duplex             0.0634