【发布时间】:2020-05-20 11:46:24
【问题描述】:
我有两张桌子。第一个表包含我的参考测量值:
> test
date site value product
A1 2017-06-10 A 0.6 meter1
A2 2017-06-10 B 0.5 meter1
A3 2017-06-11 C 0.5 meter1
A4 2017-06-18 A 0.1 meter1
A5 2017-06-19 B 0.6 meter1
A6 2017-06-19 C 0.6 meter1
第二个表包含第二组来自不同仪器的测量值,这些测量值是在其他日期进行的,可能匹配也可能不匹配。
> test2
date site value product
B1 2017-06-07 A 0.4 meter2
B2 2017-06-09 B 0.5 meter2
B3 2017-06-09 C 0.6 meter3
B4 2017-06-09 A 0.2 meter2
B5 2017-06-20 B 0.7 meter3
B6 2017-06-23 B 0.5 meter2
我想确定在特定时间间隔内(例如 1 天内)与第一个表匹配的测量值。应该是这样的:
> test3
date site value product match
1 2017-06-07 A 0.4 meter2 NA
2 2017-06-09 B 0.5 meter2 A2
3 2017-06-09 C 0.6 meter3 NA
4 2017-06-09 A 0.2 meter2 A1
5 2017-06-20 B 0.7 meter3 A5
6 2017-06-23 B 0.5 meter2 NA
最重要的是,我想将每个测量值与 ggplot 中的参考测量值进行对比。
我尝试了使用 lubridate 的不同方法,但无法正常工作。任何帮助表示赞赏。
test <- structure(list(date = structure(c(17327, 17327, 17328, 17335,17336, 17336),
class = "Date"),
site = c("A", "B", "C", "A","B", "C"),
value = c(0.6, 0.5,0.5, 0.1, 0.6, 0.6),
product = c("meter1", "meter1", "meter1", "meter1", "meter1", "meter1"))
, row.names = c("A1", "A2", "A3", "A4", "A5", "A6"),
class = "data.frame")
test2 <- structure(list(date = structure(c(17324, 17326, 17326, 17326,17337, 17340),
class = "Date"),
site = c("A", "B", "C", "A","B", "B"),
value = c(0.4, 0.5,0.6, 0.2, 0.7, 0.5),
product = c("meter2", "meter2", "meter3", "meter2", "meter3", "meter2"))
, row.names = c("B1", "B2", "B3", "B4", "B5", "B6"),
class = "data.frame")
test3 <- structure(list(date = structure(c(17324, 17326, 17326, 17326,17337, 17340),
class = "Date"),
site = c("A", "B", "C", "A","B", "B"),
value = c(0.4, 0.5,0.6, 0.2, 0.7, 0.5),
product = c("meter2", "meter2", "meter3", "meter2", "meter3", "meter2"),
match = c("NA", "A2", "NA", "A1", "A5", "NA")),
row.names = c("1", "2", "3", "4", "5", "6"),
class = "data.frame")
【问题讨论】: