【发布时间】:2022-12-19 01:10:48
【问题描述】:
我有个问题。所以,我有两个数据框,其中一个有我进行特定测量的日期和时间。测量时间为一小时。基于该日期和时间,我想从该时间跨度的另一个数据框中获取 VPD 列的平均值。意味着我需要采用 VPD 列的方法,从数据框 test 的 time 开始,一小时后结束。这意味着 VPD 然后我想添加到 testdataframe。另一个问题是第一个数据帧使用 5 分钟的步长,而第二个数据帧使用 10 分钟的步长。
这是包含有关我的测量信息的数据框:
test <- structure(list(treatment = structure(c(1L, 1L, 1L, 1L, 1L, 2L,
2L, 2L, 2L, 2L), levels = c("A", "B"), class = "factor"), plot = structure(c(1L,
2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L), levels = c("1", "2", "3",
"4", "5"), class = "factor"), date = structure(c(19028, 19028,
19033, 19035, 19038, 19033, 19046, 19046, 19035, 19038), class = "Date"),
time = c("11:05:00", "14:20:00", "13:20:00", "12:40:00",
"10:55:00", "10:45:00", "14:45:00", "12:30:00", "10:45:00",
"13:25:00")), row.names = c(NA, -10L), class = "data.frame")
这个数据框包含 10 分钟步长的天气数据:
test2 <- structure(list(datetime = structure(c(1644055200, 1644055800,
1644056400, 1644057000, 1644057600, 1644058200, 1644058800, 1644059400,
1644060000, 1644060600, 1644061200, 1644061800, 1644062400, 1644063000,
1644063600, 1644064200, 1644064800, 1644065400, 1644066000, 1644066600,
1644067200, 1644067800, 1644068400, 1644069000, 1644069600, 1644070200,
1644070800, 1644071400, 1644072000, 1644072600, 1644073200, 1644073800,
1644074400, 1644075000, 1644075600, 1644076200, 1644076800, 1644077400,
1644078000, 1644078600, 1644079200, 1644079800, 1644080400, 1644081000,
1644081600, 1644082200, 1644082800, 1644083400, 1644084000), class = c("POSIXct",
"POSIXt"), tzone = "UTC"), VPD = c(2.02, 2.02, 2.16, 2.18, 2.17,
2.17, 2.29, 2.35, 2.35, 2.43, 2.53, 2.69, 2.8, 2.98, 3.34, 3.66,
3.73, 3.74, 3.2, 3.25, 3.29, 3.27, 3.24, 3.28, 3.29, 3.31, 3.6,
3.74, 3.62, 3.38, 3.22, 3.15, 3.16, 3.11, 3.14, 3, 2.94, 3.02,
2.97, 3.01, 2.89, 2.79, 2.83, 2.85, 2.91, 2.94, 2.84, 2.87, 2.75
)), row.names = c(NA, -49L), class = "data.frame")
如果有人知道如何处理这个问题,我将不胜感激!
已编辑- 更改了 test2 数据框
【问题讨论】:
-
test的第一次观察从 11:05 开始。您希望在test2中匹配哪个时期? 11:00-12:00、11:10-12:10 或 11:10-12:00 中的任何一个都可能是合理的。 -
我会四舍五入,从 11:00 开始
标签: r