如何在 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,这与向量x1和y的长度不对应。
如何修复错误
要修复此错误,我们只需确保每个向量的长度相同,以便结果数据框中的每一列具有相同的行数。
例如,我们可以用 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 中修复:替换长度为零