0
我正在嘗試將遙測數據歸入死亡時期。遙測數據跨越7個月,我希望這些子集使用每日日出數據。子集由Diel期間多天(子列由不同df的多個列組成)
比方說df1
是我的遙測數據,並df2
是我的日出數據:
df1 <- data.frame(
datetime = as.POSIXct(c("2016-05-01 04:30", "2016-05-01 07:00", "2016-05-01 13:50",
"2016-05-03 03:50", "2016-05-04 18:20", "2016-05-06-04:20")),
ID = c("A1", "B3", "A2", "A2", "B1", "B2")
)
df2 <- data.frame(
date = as.POSIXct(c("2016-05-01", "2016-05-02", "2016-05-03", "2016-05-04", "2016-05-05", "2016-05-06")),
ntwilight.start = c("03:25:00", "03:23:00", "03:21:00", "03:19:00", "03:17:00", "03:15:00"),
sunrise = c("04:45:00", "04:44:00", "04:42:00", "04:40:00", "04:39:00", "04:37:00")
)
df2$ntwilight.start <- as.POSIXct(paste(df2$date, df2$ntwilight.start, sep = " "), format = "%Y-%m-%d %H:%M")
df2$sunrise <- as.POSIXct(paste(df2$date, df2$sunrise, sep = " "), format = "%Y-%m-%d %H:%M")
爲了創建一個子集天亮,我需要從df1
選取datetime
下降ntwilight.start
和sunrise
之間的所有行從df2
。然後,子集應該是這樣的:
datetime ID
1 2016-05-01 04:30:00 A1
2 2016-05-03 03:50:00 A2
3 2016-05-06 04:20:00 B2
我可以用一對時間值
dawn <- df1[df1$datetime >= as.POSIXct("2016-05-01 03:25", format = "%Y-%m-%d %H:%M") & df1$datetime < as.POSIXct("2016-05-01 04:45", format = "%Y-%m-%d %H:%M")]
但是,下面的代碼無法提供合適的匹配於子集df1
:
dawn2 <- df1[df1$datetime >= df2$ntwilight.start & df1$datetime < df2$sunset,]
我該怎麼辦R
搜索df2
爲與日期匹配的行,並使用ap在df2
中確定子集合?
我感覺好像我可能需要將日期和時間分隔成不同的列(對於兩個數據框),並且可能需要按日期將df1
分組,並且將每組分組。
過濾得到的數據幀,謝謝!太棒了。 –