如何修复 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 个或更多级别的因子

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注