我一直收到这个错误,我不太清楚这意味着什么。我的所有变量名都是一致的,没有拼写错误。我在这里错过了什么吗?
代码
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
答案 0 :(得分:9)
假设它不是拼写错误(数据框在您的通话中被称为dataNew
但错误中为datNew
),则为x
,y
, z
,a
和ab
dataNew
中列的名称?
某些功能(如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)
答案 1 :(得分:6)
我用过这个错误。
删除此错误的简单解决方案是将所有变量及其数据集名称写为“ds_name $ var_name”
我不确定你的情况是什么数据集名称,所以我会给你另一个类似的例子。
curYearRev <-aggregate(hr$Year.Total, by = list(hr$Hospital_ID,hr$District_ID,hr$Instrument_ID) , FUN = sum)
此处,“hr”是数据集名称,“Year.Total”,“Hospital_ID”,“District_ID”,“Instrument_ID”是“hr”数据集中的变量。
以这种方式编写聚合函数永远不会再给你任何错误。
答案 2 :(得分:1)
检查class(dataNew)
。如果它不是data.frame,则聚合之前的dataNew <- data.frame(dataNew)
应解决错误或
datNewagg <- aggregate (data.frame(dataNew), by = list('x', 'y', 'z', 'a', 'ab'),
FUN = mean)
答案 3 :(得分:1)
使用with(...,aggregate(...))
时,请勿将列名放在引号中。
答案 4 :(得分:0)
使用myapp.controller('LoginController', ['$scope', function(scope) {
var that = this; // reference to the correct this context
// Users for test
this.users = [
{
name: 'admin',
password: 'admin',
role: 'ADMIN'
},
{
name: 'employee',
password: '12345',
role: 'EMPLOYEE'
}
];
console.dir(this.users); // Prints an array of objects correctly
// called when user submits
scope.login = function() {
console.log('login(). User: ');
console.dir(scope.user); // Prints the object with user's input (also correct)
var found = false;
for(let u of that.users) { // use the correct context here
console.log('Comparing with:');
console.dir(u);
if(u.name == scope.user.name && u.password == scope.user.password) {
console.log('Found!');
found = true;
// do something else...
}
}
if(!found) { // show error message... }
}
}]);
作为data.frame
参数对我有用
试试这个:
by
我的意思是不要给出datNewagg <- aggregate (dataNew, by = dataNew[c('x', 'y', 'z', 'a', 'ab')], FUN = mean)
参数,只是参数的名称,给出一个带有列作为这些参数的data.frame