r - head() 函数在 'for' 循环中不起作用?

标签 r for-loop

我尝试使用 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() 函数有关。

最佳答案

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

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

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

这些在常见问题解答 7.16 中进行了讨论和 7.22

从评论中提取的附录:

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

关于r - head() 函数在 'for' 循环中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14987743/

相关文章:

R:如何在 lubridate 中将周期除以整数?

ios 如何在for循环中提取数组的所有rangeOfString?

linux - 如何重写这个多重 OR 条件,以便它使用 Perl "for"循环?

c++ - 在模板化 Rcpp 函数中调用另一个 cpp 函数

python(或numpy)相当于R中的匹配

将非分隔的 .text 文件读入 R

r - Shiny:在模块或嵌套模块中使用 uiOutput?

loops - for 循环语法,其中包含 if 语句

java - 如何在文件阅读器中使用 `for`?

java - 数组for循环错误