我尝试使用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()
函数有关。
答案 0 :(得分:12)
这是一个相对常见的问题,R的新人会遇到这种问题。这里的问题是R服务于两个情妇:交互式控制台工作和“真正的编程”。
在控制台上键入返回值的命令时,控制台会自动调用print方法以显示结果。运行脚本时,除非您告诉它,否则不会发生这种情况。
因此,如果您将其更改为print(head(plot_data))
,则应该有效。
附录中的补遗:
正如Josh所指出的那样,将for循环直接复制+粘贴到控制台也无法打印任何输出。在这种情况下发生的是for循环(就像R中的大多数东西)实际上是一个函数,它的返回值(NULL
)是不可见的,这意味着没有打印。 (?Control
中提到了这一点。)