0

我有一个包含两列的 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 的时间序列有关,而“休息”与 10:30 的时间序列有关,依此类推。

之后我想用这个“知识”来计算每个 TimeSeries 的平均值和标准差。因此,对于每种行为,我将拥有所有 TimeSeries 的所有手段和 sd。

4

1 回答 1

0

目前尚不清楚您的时间是否是字符、因子、POSIXct、变量等。因此,您应该首先将它们(可能在新列中)转换为数字变量,例如自午夜以来的秒数。strptimedifftime和等函数as.numeric可能会有所帮助。

向第一个数据框添加一列,即1:nrow(firstdf). 然后向函数计算的第二个数据框添加一列findInterval

seconddf$newcol <- findInterval( seconddf$seconds, firstdf$seconds )

现在您可以合并新列上的 2 个数据框,更细粒度的时间将与最近时间的活动相关联。

于 2013-07-01T17:52:59.180 回答