如何根据R中的日期对数据进行子集化?

时间:2017-06-07 04:39:52

标签: r date subset

简单的问题。我有美国国库券利率的数据,有两列 - 1)日期和2)费率。数据的范围可以追溯到1960年。我希望将1990年以后的费率分组,即根据日期。

代码: -

 val rdd=sc.parallelize(List(1,3,2,4,5,6,7,8),4)
    val sqlContext = new SQLContext(m_sparkCtx)
    import sqlContext.implicits._
    val result = rdd.toDF("values").withColumn("csum", sum(col("values")).over(Window.orderBy("values"))).rdd
    println(result.getNumPartitions+"rdd2")

所以,我只想要一个t-bill费率的载体,但从1990年开始。 我该怎么写条件?

1 个答案:

答案 0 :(得分:0)

我们需要先转换日期'到Date班级,用format提取年份,检查它是否大于1990,并将' Rates'基于那个逻辑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]