【发布时间】:2017-07-20 22:37:46
【问题描述】:
我有一个包含三列的数据集(数据表):
- 日期
- 时间
- 价格
数据集的间隔为一分钟,我需要将其转换为十五分钟的间隔。为此,我想要每 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,但是当有一些已知值时,我希望有一种方法来平均已知值。
【问题讨论】:
-
SO 不适合“请为我写这个”,尽管它偶尔会发生。这个网站的目的是关于“这个代码here不起作用,你能帮我识别/修复错误吗”。这个问题需要遵循reproducible questions的一些原则;我建议您阅读该链接以及 minimal/verifiable questions,然后返回并编辑您的问题以包含 示例数据 和您无法正常工作的相关代码。
-
好的,谢谢!第一次使用网站!
-
我编辑了我的评论来解释我到目前为止所做的尝试!
-
你在找这个
sapply(split(x, ceiling(seq_along(x)/15)), mean)。 -
谢谢Chirayu。我认为这行得通。只有当十五个值之一是 NA 时,我才会得到 NA。在您的代码行中,我在哪里适合 na.rm = true?
标签: r