5

有一点心理障碍。我确信我找到了一个在fornotprint和 not循环中打印迭代数的函数cat,但给出的输出与下面的 cat 相同。

> for(i in 10^(1:5))  print(i)
[1] 10
[1] 100
[1] 1000
[1] 10000
[1] 1e+05
> for(i in 10^(1:5))  cat(i, "\n")
10 
100 
1000 
10000 
1e+05 

我在 print 和 cat 的 R 帮助文件中看不到对它的任何引用。尝试用谷歌搜索它,但没有得到任何地方。

4

2 回答 2

11

定义一个包装函数很容易cat

catn <- function(x, append="\n"){cat(x); cat(append)}

用它:

for(i in 10^(1:5))  catn(i)
10
100
1000
10000
1e+05

或者您可以使用message(在某些代码编辑器(例如 Eclipse)中,消息以不同颜色显示的额外好处是):

for(i in 10^(1:5))  message(i)
10
100
1000
10000
1e+05
于 2012-06-27T16:44:37.883 回答
3

原来write也可以写入标准输出,如果file == ""

> for (i in 10^(1:5)) write(i, "")
10
100
1000
10000
1e+05

虽然的默认值file"data"

(我也在寻找这个失踪的运营商很长一段时间:D)

于 2012-06-27T16:45:35.730 回答