打印和猫的替代品

时间:2012-06-27 16:30:58

标签: r

有一点精神障碍。我确信我找到了一个函数来在for循环中打印迭代数字,该循环不是print而不是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 

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

2 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:3)

如果write

,结果file == ""也可以写入标准输出
> for (i in 10^(1:5)) write(i, "")
10
100
1000
10000
1e+05

file的默认值为"data"

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