R通过年份日期值从数据帧过滤中获取子集

时间:2015-12-09 09:14:37

标签: r date dataframe subset

我在R中很新。我有一个名为' dati'的数据框。有2列......第1列"日期" (是日期值),第二个是"值" (浮动值)。 ' DATI'收集7809个元素,以及"日期"价值从1995年到2015年。

如果我打印' dati'它类似于:

        "Date"      "Values"
 1      1995-01-01   7.987
 2      1995-01-02   7.944
 3      1995-01-03   7.901
    ...
 313    1995-12-29   5.187
    ...
 3033   2006-06-13   6.567
 3034   2006-06-14   6.588
 ...
 7809   2015-12-31   6.998

我想通过过滤Date值得到一个只包含元素的子集:我需要在我的子集中收集年份等于' 1995' ...就像这样的记录:

        "Date"      "Values"
 1      1995-01-01   7.987
 2      1995-01-02   7.944
 3      1995-01-03   7.901
    ...
 313    1995-12-29   5.187

此外,你能为我提供一个for循环来增加日期过滤值吗? 例如,一个用于制作3个循环...在第一个循环中,过滤年份日期值是' 1995',在第二个' 1996'在1997年的第3个'。

请注意,在这两种情况下,子集必须包含两个列值(日期和数字)。

由于

1 个答案:

答案 0 :(得分:4)

我们可以尝试subset

subset(dati, format(as.Date(Date),"%Y")==2005)

如果我们尝试对每年的数据进行分组,请尝试split

split(dati, format(as.Date(dati$Date), "%Y"))