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

bar*_*aru -5 r date subset dataframe

我在R中是个新手。我有一个名为'dati'的数据框,其中包含2列...第一列“ Date”(是Date值),第二列是“ Values”(浮点值)。“ dati”收集了7809个元素,“ Date”值从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
Run Code Online (Sandbox Code Playgroud)

我想通过过滤Date值来获得仅包含元素的子集:我需要在我的子集中收集year等于'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
Run Code Online (Sandbox Code Playgroud)

此外,可以为我提供一个for循环,在其中增加Date过滤值吗?例如,一个for进行3个循环...在第一个循环中,过滤年份Date值是'1995',在第二个中是'1996',在第三个中是'1997'。

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

谢谢

akr*_*run 6

我们可以试试 subset

subset(dati, format(as.Date(Date),"%Y")==2005)
Run Code Online (Sandbox Code Playgroud)

如果我们尝试对每年的数据进行子集化,请尝试 split

split(dati, format(as.Date(dati$Date), "%Y"))
Run Code Online (Sandbox Code Playgroud)