从另一个包含R中元素列表的数据框中的.character列创建数据框

从另一个包含R中元素列表的数据框中的.character列创建数据框,r,dataframe,R,Dataframe,我有以下数据帧(dt) 我基本上想创建一个表格,列出每种类型和每种类型得分总和的平均得分 在这种情况下,它将是 genre score action & adventure 18 sci-fi 17 fantasy 2 comedy 12 我相信有一些优雅的方法可以做到这一点,但我唯一能想

我有以下数据帧(dt)

我基本上想创建一个表格,列出每种类型和每种类型得分总和的平均得分

在这种情况下,它将是

     genre                   score

     action & adventure      18
     sci-fi                  17
     fantasy                  2
     comedy                  12
我相信有一些优雅的方法可以做到这一点,但我唯一能想到的是在dt中为每种类型创建一系列的假人,然后将其乘以分数,然后对每列的元素求和。 提前感谢您的帮助

dplyr方式

library(tidyverse)
d %>% separate_rows(genre,sep = ",") %>% 
mutate_at(vars(genre), str_trim) %>% 
group_by(genre) %>% 
summarise(sum_score = sum(score, na.rm = T),
          mean_score = mean(score, na.rm = T))
输出为

# A tibble: 4 x 3
  genre              sum_score mean_score
  <chr>                  <dbl>      <dbl>
1 action & adventure        18        9  
2 comedy                    12        6  
3 fantasy                    2        2  
4 sci-fi                    17        8.5
#一个tible:4 x 3
体裁总分平均分
1动作与冒险18 9
2喜剧12 6
3幻想2
4科幻17 8.5
# A tibble: 4 x 3
  genre              sum_score mean_score
  <chr>                  <dbl>      <dbl>
1 action & adventure        18        9  
2 comedy                    12        6  
3 fantasy                    2        2  
4 sci-fi                    17        8.5