r - 在 tidyverse 中过滤每组的前 5 个观察值

标签 r filter dplyr tidyverse

我有几个不同测量位置的降水数据,并且希望使用 tidyverse 函数仅过滤每个位置和每组降水强度的前 n 个观测值。

到目前为止,我已按位置和降水强度对数据进行了分组。

这是一个最小的示例(每个位置的每个降雨强度都有多个观测值)

df <- data.frame(location = c(rep(1, 7), rep(2, 7)),
                 rain = c(1:7, 1:7))

   location rain
1         1    1
2         1    2
3         1    3
4         1    4
5         1    5
6         1    6
7         1    7
8         2    1
9         2    2
10        2    3
11        2    4
12        2    5
13        2    6
14        2    7

我认为使用group_by()filter()应该很容易,但到目前为止,我还没有找到一个只返回每个地点每个雨组的前 n 个观测值。

 df %>% group_by(rain, location) %>% filter(???)

最佳答案

你可以这样做:

df %>%
 group_by(location) %>%
 slice(1:5)

   location  rain
      <dbl> <int>
 1        1     1
 2        1     2
 3        1     3
 4        1     4
 5        1     5
 6        2     1
 7        2     2
 8        2     3
 9        2     4
10        2     5

关于r - 在 tidyverse 中过滤每组的前 5 个观察值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58184667/

相关文章:

r - 在 Windows 中更新 R

R:迭代添加新列

r - R 中的 SVM 特征选择

filter - 无法让过滤器在多个条件下工作

r - 过滤后使用左连接更新数据

r - 为具有特定条件的标志创建 id 序列

r - Emacs ESS 评估比正常 R 慢

javascript - SVG 的色彩平衡效果

java - 我的应用程序的 Recycler View 中的 Android Studio SearchView 过滤器问题

r - "except"函数的 R 等效项是什么?