对这个问题抱歉 - 我确定答案很简单
我有几个包含对象的列表。我通过knitr将它们运行到HTML中,并希望控制输出的顺序。
此代码打印所有list1输出,然后打印所有list1图,然后是所有list2输出,然后是所有list2图
lapply(1:4, function(i){
my.list1[[i]]
plot(my.list1[[i]])
my.list2[[i]]
plot(my.list2[[i]])
})
我希望它打印第一个list1输出,然后是第一个list1绘图然后是第一个list2输出,然后是第一个list2绘图。然后进入循环的第二个交互。
换句话说,我希望函数在迭代之前完成所有命令,而不是在移动到下一个命令之前完成所有迭代。
可以这样做吗?
由于
答案 0 :(得分:2)
您应该在调用plot命令之前/之后添加plot.new
以便不在同一个地方绘图,并在调用时调用print
强制显示。
试试这个例子:
lapply(1:4, function(i){
print(my.list1[[i]])
plot(my.list1[[i]])
plot.new()
print(my.list2[[i]])
plot(my.list2[[i]])
plot.new()
})