【问题标题】:what code should I use for the R system to give me the highest value corresponding to the year [duplicate]我应该为R系统使用什么代码来给我对应于年份的最高值[重复]
【发布时间】:2021-11-12 11:06:22
【问题描述】:

我有一个对应于年度系列年份的值表,我想知道 R 的代码来给我最高值的年份吗?

library(dplyr) 
df<-tibble(value=c(10,20,30,20,40,60),year=c(2001,2001,2001,2002,2002,2002))

【问题讨论】:

  • 欢迎来到 SO,恩佐·德·加斯帕里·拉莫斯!它确实有助于 Stack 网站(尤其是 r 标签)包含/显示一些内容的问题:(1)独立的、可重复的问题,包括示例数据(使用 dput(.))和预期输出; (2) 当前代码,以展示迄今为止的努力,包括文字警告/错误文本(如果适用)。请参阅 stackoverflow.com/q/5963269minimal reproducible examplestackoverflow.com/tags/r/info 以获得有关如何执行此操作的良好讨论/示例。请阅读它们然后回来edit您的问题,并添加缺少的组件。谢谢!

标签: r series


【解决方案1】:

我假设你有类似的东西

library(dplyr)
df <- tibble(
  value = c(10,20,30,20,40,60),
  year = c(2001,2001,2001,2002,2002,2002)
)

您可以使用 group_by 对每年的汇总和 max 函数进行分组以返回最大值。

df %>% 
  dplyr::group_by(year) %>% 
  dplyr:: summarise(max_value = max(value))
)

这将返回那个

# A tibble: 2 x 2
   year max_value
  <dbl>     <dbl>
1  2001        30
2  2002        60

下次提供一些数据样本,因为我不知道这是否能解决您的问题。

【讨论】:

    【解决方案2】:

    我们可能会使用slice_max

    library(dplyr)
    df %>% 
       group_by(year) %>%
       slice_max(n = 1, order_by = value) %>%
       ungroup
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-19
      • 1970-01-01
      • 2015-01-28
      • 2010-09-13
      • 1970-01-01
      • 1970-01-01
      • 2010-11-05
      相关资源
      最近更新 更多