2013-05-29 105 views
1

对此问题的道歉 - 我敢肯定答案是v简单使用循环打印输出到Knitr

我有几个包含对象的列表。我通过knitr将它们运行到HTML中,并希望控制输出的顺序。

此代码打印所有列表1输出,那么所有的列表1地块,那么所有的列表2的输出,那么所有列表2地块

lapply(1:4, function(i){ 
    my.list1[[i]] 
    plot(my.list1[[i]]) 
    my.list2[[i]] 
    plot(my.list2[[i]]) 
}) 

我希望它打印第一列表1输出,那么第一个列表1故事情节则第一个list2输出,然后是第一个list2 plot。然后转到循环的第二个元素。换句话说,我希望函数在迭代之前完成所有命令,而不是在移动到下一个命令之前完成所有迭代。

可以这样做吗?

感谢

回答

2

你应该添加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() 
    }) 
+0

这整理了 - 非常感谢你。 –

+0

@EdG我添加了一个简短的解释。 – agstudy

+0

非常感谢 - 我试图解开plot.new正在做什么 –