我有个愚蠢的问题。我正在尝试按位置(字段)汇总同一周内的事件总数(Year_Week)。下面的表格屏幕截图类似于我的csv文件。我已经能够使用以下代码按字段和字段对分数求和: aggregate(x =df$ Year_Week,by = list(df$Year_Week,df$ Field ),FUN = sum)

但是,我不确定如何根据Year_Week和字段对事件进行求和。例如,由于2019-4赛季在欧文发生了2场比赛,我希望我的输出显示为"2“。同样,因为有三场比赛发生在2019-2赛季的那一周,所以我希望我的输出显示为"3“。我希望我的输出表看起来像这样:

其中sum_Game是在给定Year_Week中的一个位置(字段)发生的游戏数量,sum_Score是这些游戏分数的总和。提前感谢!
发布于 2021-08-15 19:06:12
使用data.table将数据转换为data.table (setDT),按“Field”、“Year_Week”分组,并获取观测值(.N)和“sum”的分数,以返回包含列“sum_Game”和“sum_Score”的汇总数据集
library(data.table)
setDT(df)[, .(sum_Game = .N, sum_Score = sum(Score)), by = .(Field, Year_Week)]注意:sum_Game不是一个好的列名,因为这表明我们正在对'Game_id‘列求和,而我们不是。相反,它只是返回游戏的数量。
简而言之,如果我们在命名对象、列名等方面很小心,就不需要详细描述代码了
发布于 2021-08-15 17:22:19
您正在寻找这样的解决方案吗?
使用aggregate
aggregate(.~Year_Week+Field, df, sum)使用dplyr
library(dplyr)
df %>%
group_by(Year_Week, Field) %>%
summarize(sumScour = sum(Score)) Year_Week Field sumScour
<chr> <chr> <int>
1 2019-12 Irvine 8
2 2019-2 Anaheim 4
3 2019-24 Anaheim 1
4 2019-4 Irvine 11https://stackoverflow.com/questions/68793728
复制相似问题