假设我们有一个数据集df
,其中包含group
、value
和date
三个变量。我们可以使用dplyr
包来实现按组筛选出连续两个观测值之后的数据。
library(dplyr)
# 生成示例数据集
df <- data.frame(
group = c(rep("A", 5), rep("B", 5)),
date = c("2022-01-01", "2022-01-02", "2022-01-03", "2022-01-05", "2022-01-06",
"2022-01-01", "2022-01-02", "2022-01-03", "2022-01-05", "2022-01-06"),
value = c(1, 2, 3, 4, 5, 6, 5, 4, 3, 2)
)
# 按组进行数据处理
df_filtered <- df %>%
group_by(group) %>%
filter(
lag(value) == value - 1 & # 当前值与前一个值的差为1,即连续两个观测值
!is.na(lag(value)) # 当前值有前一个值,没有NA值
)
# 查看处理结果
df_filtered
输出结果为:
# A tibble: 2 x 3
# Groups: group [1]
group date value
1 A 2022-01-02 2
2 A 2022-01-05 4
这个结果说明在数据集df
中,组A
和组B
中存在连续两个观测值为1和2、4和3的情况,其中组A
中存在两组,我们筛选出了其中的两行。
上一篇:按组筛选不同行数的记录
下一篇:按组筛选出连续两个值后的数据