查找每个变量的总频率

时间:2017-12-01 05:12:41

标签: r tidyr

我有一个数据框,其中release_year列表示歌曲发布的年份,play_count列表示该歌曲在给定年份播放的次数。这是一个可重复的例子:

release_year = c(1955, 1972, 1955, 2014, 1972) 
playcount = c(15, 2, 90, 6, 9) 
df = data.frame(release_year, playcount)   
df

我如何整理数据,以便每年只显示一次,并且该年度的总游戏次数是多少?例如,对于1955年,我将有105和1972年我将有11.我使用tidyr尝试了以下代码:

gather(key = release_year, value = frequency, `1955`:`2014`)

但错误表示找不到该对象。我应该在这里使用比gather()更好的功能吗?

2 个答案:

答案 0 :(得分:1)

您可以尝试dplyr方法:

df%>%group_by(release_year)%>%summarise(playcount=sum(playcount))

# A tibble: 3 x 2
#  release_year playcount
#          <dbl>     <dbl>
#1         1955       105
#2         1972        11
#3         2014         6

答案 1 :(得分:0)

您可以使用count中的dplyr功能(无需tidyr):

library(dplyr)
count(df, release_year, wt = playcount)
#> # A tibble: 3 x 2
#>   release_year     n
#>          <dbl> <dbl>
#> 1         1955   105
#> 2         1972    11
#> 3         2014     6