2

我尝试使用 for 循环打印出几行。这是代码。奇怪的是它不适用于 head() 函数。如果我替换head()print().

kw_id=c('a','b')
keyword_text=data.frame(col=c('a','b'), col2=c(1,2), row.names=(c('r1','r2')))

for (i in 1:2) { 
   plot_data<-subset(keyword_text,col==kw_id[i])
   print(plot_data)
   head(plot_data)
}

有人可以帮忙吗?我怀疑它与head()功能有关。

4

1 回答 1

15

这是 R 新手遇到的相对常见的一类问题。这里的问题是 R 服务于两个情妇:交互式控制台工作和“真正的编程”。

当您在控制台键入返回值的命令时,控制台会自动调用 print 方法以显示结果。运行脚本时,除非您告诉它,否则不会发生这种情况。

因此,如果您将其更改为print(head(plot_data))它应该可以工作。

这些在 FAQ 7.167.22中讨论

从评论中提取的附录:

正如 Josh 指出的那样,将 for 循环直接复制粘贴到控制台也无法打印任何输出。在这种情况下发生的情况是 for 循环(就像 R 中的大多数东西一样)实际上是一个函数,它的返回值 ( NULL) 是不可见地返回的,这意味着没有打印。(这在 中提到?Control。)

于 2013-02-20T19:00:44.437 回答