如何修复:xy.coords(x, y, xlabel, ylabel, log) 中的错误:“x”和“y”长度不同


在 R 中您可能遇到的一个常见错误是:

 Error in xy.coords(x, y, xlabel, ylabel, log): 
  'x' and 'y' lengths differ 

当您尝试创建两个变量的图但变量长度不同时,会出现此错误。

本教程准确解释了如何修复此错误。

如何重现错误

假设我们尝试在 R 中创建以下两个变量的散点图:

 #define x and y variables
x <- c(2, 5, 5, 8)
y <- c(22, 28, 32, 35, 40, 41)

#attempt to create scatterplot of x vs. y
plot(x, y)

Error in xy.coords(x, y, xlabel, ylabel, log): 
  'x' and 'y' lengths differ

我们收到错误,因为 x 和 y 的长度不相等。

我们可以通过打印每个变量的长度来确认这一点:

 #print length of x
length(x)

[1] 4

#print length of y
length(y)

[1] 6

#check if length of x and y are equal
length(x) == length(y)

[1] FALSE

如何修复错误

修复此错误的最简单方法是简单地确保两个向量的长度相同:

 #define x and y variables to have same length
x <- c(2, 5, 5, 8, 9, 12)
y <- c(22, 28, 32, 35, 40, 41)

#confirm that x and y are the same length
length(x) == length(y)

[1] TRUE

create scatterplot of x vs. y
plot(x, y)

如果一个向量比另一个向量短,您可以选择仅绘制不超过较短向量长度的值。

例如,如果向量 xa 有 4 个值,向量 y 有 6 个值,我们可以仅使用每个向量的前 4 个值创建散点图:

 #define x and y variables
x <- c(2, 5, 5, 8)
y <- c(22, 28, 32, 35, 40, 41)

#create scatterplot of first 4 pairwise values of x vs. y
plot(x, y[1: length (x)])

请注意,仅使用每个向量的前四个值来创建点云。

其他资源

如何在 R 中修复:强制引入的 NA
如何在 R 中修复:提示越界
如何解决:较长的对象长度不是较短对象长度的倍数

添加评论

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