【问题标题】:R - Delete days with less than 24 measurements (delete rows if number of rows with date < 24)R - 删除少于 24 次测量的天数(如果日期小于 24 的行数,则删除行)
【发布时间】:2014-08-16 13:15:13
【问题描述】:

我有一个这样的日期和每小时气温的数据框:

date    t.air
1   2013-05-01  11.1
2   2013-05-01  10.3
3   2013-05-01  9.5
4   2013-05-01  9.0
5   2013-05-01  8.6
6   2013-05-01  8.0

我应该有 2013-05-01 的 24 行,t.air 然后是第二天的 24 行,依此类推。 为了计算每日最低和最高温度,我只想考虑 24 次测量的天数。

我怎样才能编写类似的程序 "如果"day"的值少于24个,删除所有带有"day"的行"?

任何帮助将不胜感激:)

【问题讨论】:

    标签: r


    【解决方案1】:

    使用data.table。如果dat是数据集

      library(data.table)
      setDT(dat)[,.SD[.N>=24], by=date]
    

    【讨论】:

      【解决方案2】:

      你可以使用

      subset(dat, ave(date, date, FUN = length) >= 24)
      

      其中dat 是您的数据框的名称。

      【讨论】:

      • 我收到错误:as.Date.numeric(x) 中的错误:必须提供“原点”
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-24
      • 1970-01-01
      • 2018-10-27
      • 1970-01-01
      • 2021-02-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多