gpt4 book ai didi

r - R 中 dplyr 中的 "Adding missing grouping variables"消息

转载 作者:行者123 更新时间:2023-12-03 09:19:15 34 4
gpt4 key购买 nike

我的脚本的一部分以前运行良好,但最近产生了一个奇怪的语句,之后我的许多其他功能无法正常工作。我试图在每个站点的值排名列表中选择第 8 和第 23 个位置,以找到每个站点 30 年中一年中每一天的第 25 个和第 75 个百分位值。我的方法如下(适用于四行数据集 - 通常,对于我的完整 30 年数据集,slice(3) 将是 slice(23)):

library(“dplyr”)

mydata

structure(list(station_number = structure(c(1L, 1L, 1L, 1L), .Label = "01AD002", class = "factor"),
year = 1981:1984, month = c(1L, 1L, 1L, 1L), day = c(1L,
1L, 1L, 1L), value = c(113, 8.329999924, 15.60000038, 149
)), .Names = c("station_number", "year", "month", "day", "value"), class = "data.frame", row.names = c(NA, -4L))

value <- mydata$value
qu25 <- mydata %>%
group_by(month, day, station_number) %>%
arrange(desc(value)) %>%
slice(3) %>%
select(value)

之前,我会留下一个表,每个站点都有一个值来描述第 25 个百分位数(因为排列函数似乎将它们从高到低排序)。但是,现在当我运行这些行时,我收到一条消息:
Adding missing grouping variables: `month`, `day`, `station_number`

这条消息对我来说没有意义,因为分组变量在我的表格中清楚地存在。此外,直到最近,这仍然运行良好。我试过了:
  • 分离(“plyr”)——因为我在 dplyr 之前加载了它
  • dplyr:: group_by – 将其直接放在 group_by 行
  • 卸载并重新安装 dplyr,虽然这是我遇到的另一个问题

  • 知道为什么我可能会收到此消息以及为什么它可能已停止工作吗?

    谢谢你的帮助。

    更新:添加了一个站点的 dput 示例,但多年的 1 月 1 日的值。希望一旦分组就返回位置值,例如 slice(3) 有望为这个较小的子集返回 15.6 值。

    最佳答案

    为了一致性起见,分组变量在之前定义时应始终存在,因此在 select(value) 时添加。被执行。 ungroup应该解决它:

    qu25 <- mydata %>% 
    group_by(month, day, station_number) %>%
    arrange(desc(value)) %>%
    slice(2) %>%
    ungroup() %>%
    select(value)

    请求的结果没有警告:
    > mydata %>% 
    + group_by(month, day, station_number) %>%
    + arrange(desc(value)) %>%
    + slice(2) %>%
    + ungroup() %>%
    + select(value)
    # A tibble: 1 x 1
    value
    <dbl>
    1 113

    关于r - R 中 dplyr 中的 "Adding missing grouping variables"消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38511743/

    34 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com