【问题标题】:Getting sum of top n variables in a data frame获取数据框中前 n 个变量的总和
【发布时间】:2020-09-08 06:38:01
【问题描述】:
totdal_deaths_confirmed_cases_60_days_only = swine_flu_cases %>% 
filter(Confirmed >0) %>% 
group_by(Country) %>% 
summarise(top_n((total_confirmed_cases = sum(Confirmed), total_deaths = sum(Deaths),60))

所以我有一个名为 swine_flu_cases 的数据框,并且有如下变量:

确认恢复死亡的国家/地区日期

我想要做的是总结数据框中确认的组和死亡变量,但仅针对每个国家/地区的前 60 行/条目。我尝试使用 top_n 函数,但在进行摘要之前我不太确定如何将它应用到我的数据框中。我也尝试使用 slice_max 函数,但我的电脑似乎没有安装该函数,即使我加载了 dplyr 包,所以我也无法弄清楚。

任何关于如何完成此任务的建议将不胜感激

【问题讨论】:

  • 如果您包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出,则更容易为您提供帮助。
  • 欢迎来到 SO!无论任何排序变量,您都需要前 60 行,或者您需要按日期排序的前 60 行?
  • 你想要最高的total_confirmed_cases 还是total_deaths?
  • 我设法得到它。
  • 我首先提取了我想要的 60 行作为我的变量,然后我总结了它们

标签: r dplyr top-n


【解决方案1】:
step_1 = swine_flu_cases %>% 
filter(Confirmed >0)

step_2 = step_1 %>% 
group_by(Country) 
%>% top_n(-60,Date)

然后进入最后阶段

totdal_deaths_confirmed_cases_60_days_only = summarise(total_confirmed_cases = sum(Confirmed), total_deaths = sum(Deaths))

我不知道是否有人有更短的方法来做到这一点,但我是按步骤进行的,以便我更容易理解

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-08
    • 1970-01-01
    • 1970-01-01
    • 2019-03-29
    • 2020-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多