我有一个包含三列的数据集(数据表):
数据集是一分钟的间隔,我需要将其转换为十五分钟的间隔。要做到这一点,我想要每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,但是当有一些值已知时,我希望有一种方法来平均已知值。
答案 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]`