【问题标题】:for loop for multiple plots of singlefor 循环用于单个的多个图
【发布时间】:2015-09-16 12:53:50
【问题描述】:

我的数据框有五列

> names(data)
[1] "Y" "X1" "X2" "X3" "X4" 

我想写一个循环来绘制 Y 和每个 X。这就是我所做的:

par(mfrow=c(2,2))

for (i in data[,2:5]){
   plot(data$i,data$Y,xlab=i, ylab="X")
}

我得到的错误是:

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

我再次检查,所有列的长度都相同。谁能告诉我我做错了什么。谢谢

【问题讨论】:

  • 试试plot(data[,i],....

标签: r for-loop plot


【解决方案1】:

当使用data$i 时,您正试图绘制一个名为i 的列。请改用data[[i]]

此外,您正在迭代 inside data 的值(通过在控制台上打印 data[2 : 5] 来查看数据)。您几乎肯定想要遍历列,而不是 data.frame 中的数据:

for (i in colnames(data)[2 : 5])
    plot(data[[i]], data$Y, xlab = i, ylab="X")

除了colnames(data)[2 : 5],您还可以只遍历索引范围2 : 5。但是,您的 xlab 将是“2”、“3”、“4”、“5”,而不是(正如您可能想要的那样)列的名称。

【讨论】:

  • 非常感谢。这真的很有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-25
  • 1970-01-01
  • 2015-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多