如何修复 r:aggregate.data.frame() 中的错误:参数必须具有相同的长度
在 R 中您可能遇到的错误是:
Error in aggregate.data.frame(as.data.frame(x), ...): arguments must have same length
当您尝试使用Aggregate()函数汇总 R 中数据框的一列或多列中的值,但在引用列时无法指定数据框的名称时,就会出现此错误。
本教程准确解释了如何修复此错误。
如何重现错误
假设我们在 R 中有以下数据框:
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'C', 'C'),
points=c(5, 9, 12, 14, 14, 13, 10, 6, 15, 18))
#view data frame
df
team points
1 to 5
2 to 9
3 to 12
4 to 14
5 to 14
6 B 13
7 B 10
8 B 6
9 C 15
10 C 18
现在假设我们尝试使用Aggregate()函数来计算按团队分组的平均分值:
#attempt to calculate mean points value by team
aggregate(df$points, list(' team '), FUN=mean)
Error in aggregate.data.frame(as.data.frame(x), ...):
arguments must have same length
我们收到错误,因为我们未能在list()参数中指定数据块名称。
如何修复错误
修复此错误的方法是简单地在list()参数中使用df$team而不是仅使用“team” :
#calculate mean points value by team
aggregate(df$points, list(df$team), FUN=mean)
Group.1 x
1 A 10.800000
2 B 9.666667
3 C 16.500000
请注意,这次我们没有收到任何错误,因为我们在list()参数中指定了数据框名称。
请注意,如果您在list()参数中使用多个列名称,则需要为每个列名称指定数据框名称,否则您将收到错误。
其他资源
以下教程解释了如何解决 R 中的其他常见错误:
如何在 R 中修复:名称与以前的名称不匹配
如何在 R 中修复:较长物体的长度不是较短物体长度的倍数
如何在 R 中修复:对比只能应用于具有 2 个或更多级别的因子