【发布时间】:2014-02-20 20:16:59
【问题描述】:
我是 r 的新手,希望在使用循环函数创建图形方面获得一些帮助。
我希望创建 288 个图形,并且数据是堆叠格式的。每个图表都是从 30 行数据创建的,所以我的数据中总共有 288*30 = 8640 行。
我设法使用此代码创建了第一个图表-
# setting range and table
xrange <- range(0,300)
yrange <- range(1,15)
plot(xrange, yrange, type="n", xlab="Time in seconds", ylab="Performance")
# adding lines
lines(df$TimeStamp0[1:30],df$Pur[1:30], type="o", pch=4, col="red")
lines(df$TimeStamp0[1:30],df$Yel[1:30], type="o", pch=4, col="blue")
lines(df$PartTimeStamp0[1:30],df$PartPur[1:30], type="o", pch=20, col="green")
lines(df$PartTimeStamp0[1:30],df$PartYel[1:30], type="o", pch=20, col="orange")
四个不同的性能组件有四行。我希望创建一个循环来获取此语法,以便在我的整个数据集中每 30 行生成一个图表。我尝试了“for loop”命令(见下文),但无法正常工作。
for(i in 1:288) {
startRow=1, endRow=startRow+29
#pasted the above graph creation syntax
}
非常感谢任何帮助,谢谢!
【问题讨论】:
-
您只是在循环中复制相同的行吗?您应该将各种
[1:30]更改为[startRow:endRow] -
288 个图要做什么?
-
您的循环从 1:288 开始运行,生成具有给定数字的变量“i”,但我在循环代码中的任何地方都看不到 i。我也没有看到你在每个循环中更新你的 startRow。你真的需要做两者之一。现在这个循环只生成 i 288 次,它什么也不做,并且一遍又一遍地制作相同的图表。
-
是的,你是对的,我只是将它更改为 for(i in seq(1, 8640, by=30) 以及我的 [1:30] 到 [startRow:endRow],以及所有内容现在可以使用了。非常感谢!