我有一个数据框,其中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()
更好的功能吗?
答案 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