aggregate.data.frame中出错:参数的长度必须相同
我一直在犯这个错误,我不太清楚这是什么意思。我所有的变量名都是一致的,没有输入错误。我是不是遗漏了什么 代码aggregate.data.frame中出错:参数的长度必须相同,r,aggregate,R,Aggregate,我一直在犯这个错误,我不太清楚这是什么意思。我所有的变量名都是一致的,没有输入错误。我是不是遗漏了什么 代码 datNewagg <- aggregate (dataNew, by = list('x', 'y', 'z', 'a', 'ab'), FUN = mean) 假设它不是打字错误(数据框在您的调用中称为dataNew,但在错误中称为datNew),那
datNewagg <- aggregate (dataNew, by = list('x', 'y', 'z', 'a', 'ab'),
FUN = mean)
假设它不是打字错误(数据框在您的调用中称为dataNew
,但在错误中称为datNew
),那么x
、y
、z
、a
和ab
是dataNew
中列的名称吗
有些函数(如)允许您指定它们直接处理的对象的列名。该函数没有,因此在by
参数中列出的dataNew
的任何列都需要特别提及。试试这个:
datNewagg <- aggregate(dataNew,
by = list(
x = dataNew$x,
y = dataNew$y,
z = dataNew$z,
a = dataNew$a,
ab = dataNew$ab),
FUN = mean)
datNewagg检查class(dataNew)
。如果它不是data.frame,则我使用的dataNew会出现此错误。
删除此错误的简单解决方案是将所有变量与其数据集名称一起写入,如“ds\u name$var\u name”。
我不确定您的案例中的数据集名称是什么,因此我将为您提供另一个类似的示例
curYearRev <-aggregate(hr$Year.Total, by = list(hr$Hospital_ID,hr$District_ID,hr$Instrument_ID) , FUN = sum)
curYearRev使用data.frame
作为by
参数对我有效
试试这个:
datNewagg <- aggregate (dataNew, by = dataNew[c('x', 'y', 'z', 'a', 'ab')], FUN = mean)
datNewagg当您将与(…、聚合(…))一起使用时
不要将列名加引号 您是否可以输出准确的datafame?是否可以显示aggregate
调用,因为它可能被错误地指定。t聚集(mtcars,列表(“am”),平均值)
也会出现类似错误。但是如果您像aggregate(mtcars,list(mtcars$am),mean)那样指定它
或aggregate(.~am,mean,data=mtcars)
一切正常datNewagg ok,请查看上面关于指定聚合函数的注释。尝试datNewagg
curYearRev <-aggregate(hr$Year.Total, by = list(hr$Hospital_ID,hr$District_ID,hr$Instrument_ID) , FUN = sum)
datNewagg <- aggregate (dataNew, by = dataNew[c('x', 'y', 'z', 'a', 'ab')], FUN = mean)