5

ちょっとしたメンタルブロック。ではないforループで反復番号を出力する関数を見つけたと確信していますが、以下の cat と同じ出力が得られました。printcat

> 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"but です。

(私もこの行方不明の演算子を長い間探しています:D)

于 2012-06-27T16:45:35.730 に答える