我有一个包含两列的data.frame。第一列包含一天中的各种特定时间。第二列包含我在每个特定时间观察到的动物行为(行为期):
Time; Behavior
10:20; feeding
10:25; feeding
10:30; resting
...
对于每个行为时期,我都有一个额外的数据集(TimeSeries),其中包含有关实际动物运动的数据(来自运动传感器的输出)。每个TimeSeries大约有100行:
Time; Var1; Var2
10:20:01; 1345; 5232
10:20:02; 1423; 5271
...
现在我想将每个TimeSeries与第一个数据集中的行为相关联。因此,R知道“喂食”与10:20和10:25的TimeSeries有关,而“休息”与10:30的TimeSeries有关,依此类推。
之后我想用这个“知识”来计算每个TimeSeries的均值和sd。因此,对于每种行为,我将拥有所有TimeSeries的所有手段和sd。
答案 0 :(得分:0)
目前尚不清楚您的时间当前是字符,因子,POSIXct,变量等。因此,您应首先将它们(可能在新列中)转换为数字变量,例如自午夜以来的秒数。 strptime
,difftime
和as.numeric
等功能可能有所帮助。
将列添加到仅1:nrow(firstdf)
的第一个数据框。然后将一列添加到由findInterval
函数计算的第二个数据帧:
seconddf$newcol <- findInterval( seconddf$seconds, firstdf$seconds )
现在,您可以合并新列上的2个数据框,并且更细粒度的时间将与最近一次的活动相关联。