我的脚本中有一部分以前运行得很好,但最近生成了一个奇怪的语句,之后我的许多其他函数都无法正常工作.我试图在每个站点的价值排名列表中 Select 第8位和第23位,以找到30年来每个站点一年中每天的第25和第75个百分位值.我的方法如下(适用于四行数据集——通常情况下,对于我完整的30年数据集,切片(3)将是切片(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`
这条消息对我来说没有意义,因为分组变量显然存在于我的表中.同样,直到最近,这项技术仍然运作良好.我试过:
- detatch("plyr")——因为我在dplyr之前加载了它
- dplyr::group_by–将其直接放置在group_by行中
- 卸载并重新安装dplyr,尽管这是为了我遇到的另一个问题
我知道为什么我会停止接收这个消息?
谢谢你的帮助.
更新:添加了一个站点的dput示例,但1月1日的值持续多年.希望在分组后返回位置值,例如,切片(3)希望为这个较小的子集返回15.6的值.