【发布时间】:2012-12-01 00:43:34
【问题描述】:
我有数据框 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 函数?
【问题讨论】:
-
91 B第 19 行的情况下你想返回什么? -
@BenBarnes 谢谢你的想法很笼统,但在我的例子中,这不应该发生。
-
?diff将是一个很好的起点(例如diff(df$x)),但您需要进行一些调整才能使其正常工作。顺便说一句,x和x2的值不在您的问题中。 -
@mrdwab 谢谢更正,我会检查
diff刚才
标签: r