下表是參考表。列a(最左列)表示開始日期。 b欄(中間欄)代表結束日期。列d(最右邊的列)表示與左側的每個時間段對應的「唯一值」。如何在r中查找日期之間的值
a b d
1/1/07 1/1/08 a
1/1/08 1/1/09 b
1/1/09 1/1/10 c
1/1/10 1/1/11 d
1/1/11 1/1/12 e
使用上表我有一個日期列表(如下所示)。我想填充與下面的日期對應的「唯一值」。如果下面的日期屬於上述參考表格中的兩個日期之間,那麼將在下面標識並填充「唯一值」。列e是輸入。列f是輸出
e f
2/2/09 c
8/8/07 a
8/7/10 d
1/1/11 e
我能夠使用vlookups,min和數組函數在Excel中進行計算。但我不知道如何在r中做到這一點。
我嘗試使用合併功能,但它似乎需要一個完全匹配。我也嘗試了以下代碼,但沒有成功
Ifelse (e >= x$a & e < x$b, d, "")
x是列a,b,d的數據幀的名稱。僅供參考日期格式化爲在r中使用並轉換爲數字。
謝謝
可以使用內'%%'和'as.period'從'lubridate'包這一點。但是我發現,執行你所建議的比較很簡單。 – Justin
也許你會發現[這個問題/答案](http://stackoverflow.com/questions/13911141/indexing-dataframe-by-date-interval)有用。在你的情況下,你甚至不需要用'format'來包裝。 – plannapus
您發現不成功的代碼有'ifelse'拼寫錯誤。如果你沒有正確拼寫功能,你不會在R中走得太遠。 –