【发布时间】:2014-02-12 15:03:08
【问题描述】:
我有一个大致如下所示的日期框架:
x<-c(0,0,0,0,0,1,1,1,0,1,0)
y<-c(12,12,3,45,6,5,63,2,3,4,5)
z<-data.frame(x,y)
z
# x y
#1 0 12
#2 0 12
#3 0 3
#4 0 45
#5 0 6
#6 1 5
#7 1 63
#8 1 2
#9 0 3
#10 1 4
#11 0 5
我想运行一个函数或循环,在 x 中找到等于 1 的行,并将这一行和前面的 4 行添加到新数据框中。
【问题讨论】:
-
which(z$x==1)为您提供 x 为 1 的索引。您想要所有这些索引的前四行吗? -
感谢您的评论。是的,完全适合他们每个人
-
然后你想要四个数据帧(
z的第 6、7、8、10 行)?然后你可以这样做:lapply(which(z$x==1), function(x)z[(x-4):x,])。还是您希望最后只有一个数据框? -
你做什么例如在第 10 行:再次包括这一行和前面的四行?这有点像@user1981275 的评论
-
非常感谢,我可以添加 rbind.fill(来自 plyr 包)来创建一个数据框。完美运行。