r - 向量序列上的子集数据帧

标签 r

我有数据框 df,我想根据分类中的数字序列对 df 进行子集化。

 x  <- c(1,2,3,4,5,7,9,11,13)
 x2 <- x+77 
 df <- data.frame(x=c(x,x2),y= c(rep("A",9),rep("B",9)))

 df
    x y
1   1 A
2   2 A
3   3 A
4   4 A
5   5 A
6   7 A
7   9 A
8  11 A
9  13 A
10 78 B
11 79 B
12 80 B
13 81 B
14 82 B
15 84 B
16 86 B
17 88 B
18 90 B

我只想要 x 增加 1 的行,而不是 x 增加 2 的行:例如

    x y
1   1 A
2   2 A
3   3 A
4   4 A
5   5 A
10 78 B
11 79 B
12 80 B
13 81 B
14 82 B

我想我必须在元素之间做一些减法,并检查差异是否为 >1 并将其与 ddply 结合起来,但这看起来很麻烦。我是否缺少某种 sequence 函数?

最佳答案

使用差异

df[which(c(1,diff(df$x))==1),]

关于r - 向量序列上的子集数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13644660/

相关文章:

R:更正 R 中日期的年份

R:将列表组件的值连接到另一个定义哪些组件在一起的列表

r - 使用 rpart 选择决策树修剪的 CP 值

r - 在 R 中使用 expand.grid 应用函数

r - 在 r 中的一组中分配小于 5 的数据

r - 如何将外部数据文件添加到开发 R 包中?

r - 使用 sapp() 将 terra::focal 应用于 SpatRaster 的每一层

r - 如何按列对摘要的输出进行排序?

r - 列表子集的模拟

R - %in% 中使用的样本修改正在被子集化的数据帧