通过在R中使用预定义变量来绘制函数

时间:2013-01-07 11:09:03

标签: r function automation plot

我想在R中创建一个类。我有多个表,我想用函数绘制它们。我使用的代码是:

temp <- data.frame(gsbi1_30,gsbi1_29,ob_30,ob_29)

其中gsbi1_30,gsbi1_29,ob_30,ob_29是表格。

par(mfrow=c(2,2))
for (i in temp){ plot(i$ambtemp,type="o", pch=22, lty=2, col="brown",xlab = "Hour  2007/09/29" , ylab= "Ambient Tempreture" )
                 title(main="Hourly Mean, node 25", col.main="brown", font.main=1) }

我想出了这个错误:

Error in plot(i$ambtemp, type = "o", pch = 22, lty = 2, col = "brown",  : 
  error in evaluating the argument 'x' in selecting a method for function 'plot': Error in i$ambtemp : $ operator is invalid for atomic vectors

示例数据:

-0.6 -1.2 -1.0 -0.8 -0.4 -0.2

所有其他样本的结构相同。

1 个答案:

答案 0 :(得分:1)

问题是您不应该首先将temp创建为data.frame。如果gsbi1_30,gsbi1_29,ob_30和ob_29本身就是data.frames(我怀疑),data.frame()将组合它们的列来生成一个大的data.frame。

而是创建一个list

temp <- list(gsbi1_30,gsbi1_29,ob_30,ob_29)

并使用lapply()迭代它(for循环在R中非常低效):

par(mfrow=c(2,2))
lapply(temp, function(i) {
    plot(i$ambtemp, type = "o", pch = 22, lty = 2, col = "brown", xlab = "Hour  2007/09/29" , ylab = "Ambient Tempreture")
})