2013-07-01 32 views
0

我有一个data.frame有两列。第一列包含一天中的各种特定时间。第二列包含我每个特定时间在观察到的动物的行为(行为周期):将字符从一个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有关,而“rest”与10:30的TimeSeries有关,等等。

然后我想用这个“知识”来计算每个TimeSeries的mean和sd。所以我会为所有行为提供所有TimeSeries的所有手段和sd。

+0

请提供可用的(R代码)完整可重复的示例,以及您期望的解决方案的预期输出。 –

+0

尝试[this](http://stackoverflow.com/questions/15303283/how-to-do-vlookup-and-fill-down-like-in-excel-in-r) – Metrics

回答

0

目前还不清楚您的时间是否为当前的字符,因素,POSIXct,变量等。因此,您应该首先将它们(可能在新列中)转换为数值变量,如自午夜以来的秒数。像strptime,difftimeas.numeric这样的函数可能会有所帮助。

在第一个数据帧中添加一列即为1:nrow(firstdf)。然后添加一列由该findInterval函数计算第二个数据帧:

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

现在你可以在新列合并2个数据帧和更细粒度的时间将与该活动从最近有关时间。

相关问题