2017-06-07 51 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