【发布时间】:2021-01-26 11:44:53
【问题描述】:
我正在尝试使用函数将我的数据聚合为 5 分钟的时间间隔,但我无法理解收到的错误
我的数据如下所述。
> head(BB)
V1 423 470 473 626
1 2018-02-01 00:00:00 0.000 0 0.00000 0
2 2018-02-01 00:01:00 27.750 0 0.00000 0
3 2018-02-01 00:02:00 60.375 0 39.50000 0
4 2018-02-01 00:03:00 79.500 0 54.00000 0
5 2018-02-01 00:04:00 0.000 0 57.00000 0
6 2018-02-01 00:05:00 0.000 24 60.33333 0
我使用的代码是
f <- function(x){
y <- x[x != 0]
mean(y, na.rm = TRUE)
}
BB<-BB[, lapply(.SD, f), by = cut(as.POSIXct(V1), "5 mins")]
我用这段代码得到了 5 行不包括 0 的平均值。
但我收到的错误是
Error in `[.data.frame`(BB, , lapply(.SD, f), by = cut(as.POSIXct(V1), :
unused argument (by = cut(as.POSIXct(V1), "5 mins"))
对于这个错误,我会很感激一些建议。
已编辑
structure(list(V1 = structure(c(1517410800, 1517410860, 1517410920,
1517410980, 1517411040, 1517411100), class = c("POSIXct", "POSIXt"
), tzone = ""), `423` = c(0, 27.75, 60.375, 79.5, 0, 0), `470` = c(0,
0, 0, 0, 0, 24), `473` = c(0, 0, 39.5, 54, 57, 60.3333333333333
), `626` = c(0, 0, 0, 0, 0, 0)), row.names = c(NA, 6L), class = c("data.table",
"data.frame"))
【问题讨论】:
-
代码对我来说似乎不错,你确定你正在运行它吗?可能重新启动您的 R 会话并重试。
-
我很确定我正在运行它,如图所示。再举个例子,我在我编辑的问题中使用 dput 添加了我的数据集。
-
@Ronak Shah 我已尝试重新启动我的 R 会话,但仍然无法正常工作。您能帮我进一步解释错误的含义吗?
-
对我来说工作正常,您共享的数据没有任何错误。
标签: r data.table lapply