2013-07-01 36 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個數據幀和更細粒度的時間將與該活動從最近有關時間。

相關問題