суммы одной и той же строки в другой строке в R - PullRequest
0 голосов
/ 21 ноября 2018

Я хочу вычислить сумму одинаковых строковых значений.Это мой набор данных:

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 голосов
/ 21 ноября 2018

Вам необходимо преобразовать 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...