首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在同一列中聚合事件

在同一列中聚合事件
EN

Stack Overflow用户
提问于 2021-08-15 17:11:54
回答 2查看 66关注 0票数 1

我有个愚蠢的问题。我正在尝试按位置(字段)汇总同一周内的事件总数(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是这些游戏分数的总和。提前感谢!

EN

回答 2

Stack Overflow用户

发布于 2021-08-15 19:06:12

使用data.table将数据转换为data.table (setDT),按“Field”、“Year_Week”分组,并获取观测值(.N)和“sum”的分数,以返回包含列“sum_Game”和“sum_Score”的汇总数据集

代码语言:javascript
运行
复制
library(data.table)
setDT(df)[, .(sum_Game = .N, sum_Score = sum(Score)), by = .(Field, Year_Week)]

注意:sum_Game不是一个好的列名,因为这表明我们正在对'Game_id‘列求和,而我们不是。相反,它只是返回游戏的数量。

简而言之,如果我们在命名对象、列名等方面很小心,就不需要详细描述代码了

票数 2
EN

Stack Overflow用户

发布于 2021-08-15 17:22:19

您正在寻找这样的解决方案吗?

使用aggregate

代码语言:javascript
运行
复制
aggregate(.~Year_Week+Field, df, sum)

使用dplyr

代码语言:javascript
运行
复制
library(dplyr)
df %>% 
    group_by(Year_Week, Field) %>% 
    summarize(sumScour = sum(Score))
代码语言:javascript
运行
复制
  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        11
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68793728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档