【问题标题】:Summarise rows in dataframe by two columns按两列汇总数据框中的行
【发布时间】:2022-07-31 18:19:16
【问题描述】:

我有一个名为World的数据框,它显示以下内容:

City           Year           Income           Tourist
London         2008             50               100
NY             2009             75               250
Paris          2010             45               340
Dubai          2008             32               240
London         2011             50               140
Abu Dhabi      2009             60               120
Paris          2009             70               140
NY             2007             50               150
Tokyo          2008             45               150
Dubai          2010             40               480
#With 207 more rows

我想总结每一行,以便每个城市显示所有年份的总收入和游客。所以我想找到一个匹配City和Years的代码,然后汇总,这样每个城市只有一行。

类似这样的:

City          Income            Tourist
London         1051              5040
NY             1547              5432
Paris          2600              4321
Dubai          3222              5312
Abu Dhabi      3100              7654
Tokyo          2404              4321
#With 40 more rows

经过研究,我应该使用n_distinctgroup_by

【问题讨论】:

  • 你是对的。您尝试了什么,为什么没有成功?
  • group_by(City) %>% summarise(count = n_distinct(Year))
  • 但是它对我不起作用。 @Limey
  • count 计算行数。 sum 对值求和。坚持下去。请记住,“它不起作用”不是很丰富。它以什么方式不起作用?你收到错误信息了吗?您是否得到了不符合您期望的输出?我们需要清晰。
  • “我的 tibble 看起来很奇怪”同样没有提供信息。所以我们知道n()count() 不会给你你想要的。你试过sum() 了吗? This post 将帮助您提出一个很好的问题。

标签: r


【解决方案1】:

用 sapply 不雅:

t(sapply(unique(World$City),function(CITY) colSums(World[World$City==CITY,c("Income","Tourist")])))

【讨论】:

    猜你喜欢
    • 2022-01-07
    • 2021-01-04
    • 2021-04-23
    • 1970-01-01
    • 2020-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    相关资源
    最近更新 更多