可以轻松地对连续数据进行子集化吗?

时间:2015-11-12 22:28:35

标签: r subset

我的一个数据属性是"时间"从o秒到8640秒(连续),我的教授让我分析我的数据(0-5分钟)(5-10分钟)(10分钟) -15分钟)。我知道将数据子集化的基本代码,例如:

data<-data[which(data$Time<=300&data$>=0),]

但如果我这样做,我必须一次又一次地重复......我在想,我能有一个简单的方法来解决这个问题吗?有人可以帮帮我吗?非常感谢!!

1 个答案:

答案 0 :(得分:1)

让我们假设您的数据集如下,而不失一般性:

time <- seq(0,8640) 

将您的单位时间块定义为(您正在查看5分钟的单位)

blocks <- seq(1, length(time), 300)

然后

groups <- cbind(time, cut(time, blocks))

伴随time中的每一行,其对应的对应块为5分钟(变量V2)。事实上:

R: set.seed(1234)
R: groups[sample(nrow(groups), 5), ]
     time V2
983   983  4
5377 5377 18
5263 5263 18
5385 5385 18
7435 7435 25

一旦这样,您就可以通过变量V2对数据集分组执行任何操作。