我在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
我想通过过滤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
此外,可以为我提供一个for循环,在其中增加Date过滤值吗?例如,一个for进行3个循环...在第一个循环中,过滤年份Date值是'1995',在第二个中是'1996',在第三个中是'1997'。
请注意,在两种情况下,子集都必须包含两个列值(日期为数字)。
谢谢
我们可以试试 subset
subset(dati, format(as.Date(Date),"%Y")==2005)
如果我们尝试对每年的数据进行子集化,请尝试 split
split(dati, format(as.Date(dati$Date), "%Y"))