我想在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
所有其他样本的结构相同。
答案 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")
})