我有以下两个数据集: -
第一个水质数据集主要包含污染物浓度
>wq_data
Date TSS TZn TCu
2/02/1995 16.0 0.02 0.006
9/03/1995 10.0 0.03 0.005
7/04/1995 8.2 0.04 0.004
10/05/1995 4.3 0.04 0.006
降雨量数据是指天数的小时数据。
>Data_ppt
Date Rain
1/02/1995 01:00 0.0
1/02/1995 02:00 1.87
1/02/1995 03:00 0.0
1/02/1995 04:00 0.0
1/02/1995 05:00 0.0
.....
2/03/1995 01:00 0.0
我正在尝试根据wq_data中的日期从Data_ppt中提取数据。我理解这可以使用许多技术来完成,例如本Q&A中提到的但我必须提前一步,在wq_data中记录日期前1或5天提取Data_ppt数据。
我想要一个看起来像这样的新数据集。 (以wq_data $ Date之前1天为例)
>1day_prior
Date Rain
1/02/1995 01:00 0.0
1/02/1995 02:00 1.87
1/02/1995 03:00 0.0
1/02/1995 04:00 0.0
1/02/1995 05:00 0.0
1/02/1995 06:00 0.0
1/02/1995 07:00 0.0
1/02/1995 08:00 0.0
1/02/1995 09:00 0.0
1/02/1995 10:00 0.0
1/02/1995 11:00 0.60
1/02/1995 12:00 0.0
1/02/1995 13:00 0.0
1/02/1995 14:00 0.0
1/02/1995 15:00 0.0
1/02/1995 16:00 0.0
1/02/1995 17:00 0.0
1/02/1995 18:00 0.50
1/02/1995 19:00 0.0
1/02/1995 20:00 0.0
1/02/1995 21:00 0.0
1/02/1995 22:00 0.0
1/02/1995 23:00 0.0
1/02/1995 24:00 0.0
8/03/1995 01:00 0.0
8/03/1995 02:00 0.78 and so forth
如果我需要提供任何澄清/修改以使其成为一个措辞更好的问题,请告诉我。
答案 0 :(得分:0)
要获得先前日期的范围,您可以在基础R
中执行此操作# first get the sequence of 5 prior dates
dates = do.call("c", lapply(split(wq_data, wq_data$Date),
function(x) seq(as.Date(x$Date)-5, as.Date(x$Date)-1, 1)))
# use the sequence to select the dates from second data frame
Data_ppt[as.Date(Data_ppt$Date) %in% dates,]