我一直收到此错误,但我不太清楚这意味着什么。我所有的变量名都是一致的,没有错字。我在这里想念什么吗?

代码

datNewagg <- aggregate (dataNew, by = list('x', 'y', 'z', 'a', 'ab'),
                                                             FUN = mean)


产生错误

  Error in aggregate.data.frame(datNew, by = list("x", "y",  :
  arguments must have same length

最佳答案

假设它不是拼写错误(数据框在您的调用中称为dataNew,但在错误中称为datNew),它们是列的名称xyzaabdataNew中?

某些功能,例如subset,将允许您指定直接使用它们的对象的列名。 aggregate函数没有,因此dataNew自变量中列出的by的任何列都需要特别地引用。试试这个:

datNewagg <- aggregate(dataNew,
    by = list(
        x = dataNew$x,
        y = dataNew$y,
        z = dataNew$z,
        a = dataNew$a,
        ab = dataNew$ab),
    FUN = mean)

08-24 22:20