【问题标题】:R get subset from data frame filtering by year Date valueR从按年份日期值过滤的数据帧中获取子集
【发布时间】:2016-03-14 11:44:43
【问题描述】:

我是 R 中的新手。我有一个名为“dati”的数据框,有 2 列...第一列“日期”(是日期值),第二列是“值”(浮点值)。 '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

我想通过过滤日期值来获得一个仅包含元素的子集:我需要在我的子集中收集年份等于“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

此外,您能否提供一个用于增加 Date 过滤值的 for 循环? 例如,一个 for 进行 3 个循环...在第一个循环中,过滤年份日期值为“1995”,第二个为“1996”,第三个为“1997”。

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

谢谢

【问题讨论】:

  • 为什么要创建所有这些子集?有比单独创建所有子集更好的方法来“按某事拆分数据并对每个部分做某事”。
  • 我需要检测每年最大数值的记录,收集列表中的所有 11 条记录,然后绘制它。最小值相同。

标签: r date dataframe subset


【解决方案1】:

我们可以试试subset

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-10
    • 2022-07-29
    • 2016-05-22
    • 1970-01-01
    • 1970-01-01
    • 2015-09-20
    • 2014-03-10
    • 1970-01-01
    相关资源
    最近更新 更多