如何在 r 中修复:参数涉及不同的行数


在 R 中您可能遇到的错误是:

 arguments imply differing number of rows: 6, 5

当您尝试创建数据框并且数据框每列中的行数不相同时,会出现此错误。

以下示例展示了如何在实践中纠正此错误。

如何重现错误

假设我们尝试使用三个向量在 R 中创建一个数据框:

 #definevectors
x1 <- c(1, 2, 3, 4, 5, 6)
x2 <- c(8, 8, 8, 7, 5)
y <- c(9, 11, 12, 13, 14, 16)

#attempt to create data frame using vectors as columns
df <- data. frame (x1=x1, x2=x2, y=y)

Error in data.frame(x1 = x1, x2 = x2, y = y): 
  arguments imply differing number of rows: 6, 5

我们收到错误,因为每个向量的长度不同,因此生成的数据帧中的每一列没有相同的行数。

我们可以通过打印每个向量的长度来检查这一点:

 #print length of each vector
length(x1)

[1] 6

length(x2)

[1] 5

length(y)

[1] 6

我们可以看到向量x2 的长度为 5,这与向量x1y的长度不对应。

如何修复错误

要修复此错误,我们只需确保每个向量的长度相同,以便结果数据框中的每一列具有相同的行数。

例如,我们可以用 NA 值填充最短向量,以便每个向量具有相同的长度:

 #definevectors
x1 <- c(1, 2, 3, 4, 5, 6)
x2 <- c(8, 8, 8, 7, 5)
y <- c(9, 11, 12, 13, 14, 16)

#pad shortest vector with NA's to have same length as longest vector
length(x2) <- length(y)

#create data frame using vectors as columns
df <- data. frame (x1=x1, x2=x2, y=y)

#view resulting data frame
df

  x1 x2 y
1 1 8 9
2 2 8 11
3 3 8 12
4 4 7 13
5 5 5 14
6 6 NA 16

请注意,我们不会收到错误,因为结果数据框中的每一列都具有相同的行数。

其他资源

以下教程解释了如何修复 R 中的其他常见错误:

如何在 R 中修复:参数既不是数字也不是逻辑:返回 na
如何在 R 中修复:二元运算符的非数字参数
如何在 R 中修复:替换长度为零

添加评论

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