【问题标题】:R: lapply, receiving unused argument error of my code [closed]R:lapply,收到我的代码的未使用参数错误[关闭]
【发布时间】: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


【解决方案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-01-02
    • 1970-01-01
    • 2022-10-14
    • 2017-07-12
    • 1970-01-01
    • 1970-01-01
    • 2012-05-17
    • 2014-07-22
    • 1970-01-01
    相关资源
    最近更新 更多