2013-05-29 104 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正在做什麼 –