使用循环将输出打印到Knitr

时间:2013-05-29 12:34:01

标签: r knitr

对这个问题抱歉 - 我确定答案很简单

我有几个包含对象的列表。我通过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绘图。然后进入循环的第二个交互。

换句话说,我希望函数在迭代之前完成所有命令,而不是在移动到下一个命令之前完成所有迭代。

可以这样做吗?

由于

1 个答案:

答案 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()
  })