这个问题的灵感来自这个问题:How to use conditional filtering of a data frame of a R in R when试图保留两列中的非重复值
我们如何在随后的组 (1,2,3,4...n) 中切片相应的行 (1,2,3,4....n)。在这个简化的例子中,第一个数据帧应该产生第二个:
library(tidyverse)
# tibble
df <- tibble(
group = c(1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5),
value = c(1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 5)
)
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经尝试了不同的选择slice
喜欢slice(seq(1, n(), by = 2))
从这里:如何从每个组的每个第n个元素的分组数据帧。非常感谢!
df %>%
group_by(group) %>%
slice(cur_group_id())
# # A tibble: 5 x 2
# # Groups: group [5]
# group value
# <dbl> <dbl>
# 1 1 1
# 2 2 2
# 3 3 3
# 4 4 4
# 5 5 5
Run Code Online (Sandbox Code Playgroud)