2017-06-07 67 views
0

足夠簡單的問題。我有美國國庫券利率數據,有兩列- 1)日期和2)利率。這些數據的範圍可以追溯到1960年。我希望從1990年開始,即根據日期對利率進行分組。如何根據R中的日期子集數據?

代碼: -

data = read.csv("3mt-bill.csv") 

rates= ? 

所以,我只想國庫券利率的載體,但是從1990年起。 我該怎麼寫條件?

+1

是否日期列僅包含一年?那麼'class(data $ Date)'返回什麼? – neilfws

+0

不,日期的格式爲dd/mm/year。和類(數據$日期)返回空值。 – ricksanchez

+0

這將有助於查看數據的前幾行。 NULL表示沒有名爲Date的列。 – neilfws

回答

0

我們需要先「日期」轉換爲Date類,與format提取年,檢查它是否比1990年更大,子集「價格」基於該邏輯vector

data$Rate[format(as.Date(data$Date), "%Y") >= 1990] 

如果「日期」欄只包括一年的部分,很容易

data$Rate[data$Date >= 1990] 

以防萬一,如果我們需要tidyverse

library(tidyverse) 
data %>% 
     filter(year(ymd(Date)) >= 1990) %>% 
     select(Rate) 

或者使用data.table

library(data.table) 
setDT(data)[year(as.IDate(Date)) >= 1990, Rate] 
+0

第一個本身工作。萬分感謝! – ricksanchez