每15行平均一列

时间:2017-03-01 14:35:48

标签: r

我有一个包含三列的数据集(数据表):

  • 日期
  • 时间

数据集是一分钟的间隔,我需要将其转换为十五分钟的间隔。要做到这一点,我想要每15行的平均价格。我需要在一个新的数据帧中(比原始行少15倍),所以我可以将其复制/粘贴到已有15分钟间隔的另一个数据集中。

我尝试使用以下代码获取每15行的平均值来创建一个新列表:

means.price <- dt.Energy.prices[, mean(dt.Energy.prices$Lowest_price_downward), by= 
     (seq(nrow(dt.Energy.prices)) - 1) %/% 15]

我得到一个新的数据集,其中所有均值都是NA。 Means.price有大约70.000 obs。原来有大约105万。它的目的是创建一个原始数据的1/15,但手段仍然缺失。

有时列价格为NA。因此有时候所有15个都是NA,但有时5行有一个值,其他10个有NA。如果它是15,我的输出平均值是NA,但是当有一些值已知时,我希望有一种方法来平均已知值。

1 个答案:

答案 0 :(得分:0)

在避免转换为时间序列时执行此操作的一种简单方法(尽管这可能有助于进一步处理此数据)是我们na.rm = TRUE致电mean()

以下是一个如何运作的示例:

> mean(c(2, 0, 0, 0))
[1] 0.5
> mean(c(2, 0, 0, NA))
[1] NA
> mean(c(2, 0, 0, NA), na.rm = TRUE)
[1] 0.6666667

从你的代码来看,还不是很清楚Lowest_price_downward是什么,但从你描述它的方式来看,这可能有所帮助。

means.price <- dt.Energy.prices[, mean(dt.Energy.prices$Lowest_price_downward,
                                       na.rm = TRUE),
                                  by = (seq(nrow(dt.Energy.prices)) - 1) %/% 15]`