0

我正在尝试使用一个函数将我的数据聚合到 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")]

我使用此代码来获取不包括 0 的 5 行的平均值。

但我收到的错误是

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"))
4

1 回答 1

1

我猜这个data.table包没有加载?

做的时候

BB<-BB[, lapply(.SD, f), by = cut(as.POSIXct(V1), "5 mins")]

我得到同样的错误,当把

library(data.table)
BB<-BB[, lapply(.SD, f), by = cut(as.POSIXct(V1), "5 mins")]

有用。

于 2020-10-12T07:31:14.527 回答