循环日期以计算均值

时间:2019-04-27 21:16:20

标签: r for-loop time-series

我有一个日期为2013年至2018年的数据框,其中包含我正在研究的位置的每日降水量值。我想计算上述年份中每个日期的平均降水量。例如,2013年至2018年6月1日的平均降水量。我将使用该日均值来研究与2013年至2018年的日均降水量的日偏差。

这就是我的数据 DataTable

我不知道如何为此编写循环,因此我没有任何代码可显示。

此循环的输出应为一年中的日期列表,每个日期都应具有长期平均值,如下所示:

Date (dd/mm)    Mean
01-01           1.5
02-01           4.6
03-01             5
  .
  .
31-12            6

谢谢!

1 个答案:

答案 0 :(得分:1)

许多其他帖子已经回答了这个问题。

的组合
  1. 按照this question
  2. 中所述转换日期
  3. 计算this question和/或
  4. 中一列的平均值
  5. this question
  6. 中所述计算分组平均值

将回答您的问题。

我假设您的dataTable实际上是data.tabledata.frame,或者简写为“ data”。我将使用basewith函数提供一个ave R版本,并使用其子设置选项为data.table提供一个示例

library(lubridate)
library(data.table)
#Data frame way
with(data, ave(Vil_481690, #variable to calculate mean 
               year(Vil_dates), #which variables to group (can be any number of variables)
               FUN = mean #already standard
               ))
#data.table way
setDT(data) #change data to a data.table
data[, mean(Vil_481690), by = year(Vil_dates)])]

请注意,由于没有可复制的数据,因此尚未经过测试,因此可能在一个地方或另一个地方有错字。