2015-11-15 125 views
1

我有以下兩個數據集: -過濾一個數據集

  1. 每月水質數據
  2. 雨量(每日觀測@hourly時間戳)

第一水質數據集包含主要污染物的濃度的

>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數據。

我想要一個看起來像這樣的新數據集。 (服用前1天至wq_data $日期的情況下)

>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 

請不要讓我知道如果我需要提供任何澄清/編輯以做出更好的措辭問題。

+1

你可以嘗試這樣做'Data_ppt [其中(as.Date(Data_ppt $日期+ 1)%的%as.Date (wq_data $ Date)),]' –

回答

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,] 
+0

看起來應該這樣做。我會在某個時候回覆你的結果。 – Sally

+1

它像一個魅力。感謝幫助我@Veerendra Gadekar。 – Sally

+0

@Sally很高興知道它幫助! –