Rでprint()を使用して改行を印刷する


111

Rで複数行のメッセージを印刷しようとしています。たとえば、

print("File not supplied.\nUsage: ./program F=filename",quote=0)

出力を取得します

File not supplied.\nUsage: ./program F=filename

希望の代わりに

File not supplied.
Usage: ./program F=filename

回答:


130

への代替cat()writeLines()

> writeLines("File not supplied.\nUsage: ./program F=filename")
File not supplied.
Usage: ./program F=filename
>

利点は、メッセージの後に改行を取得する"\n"ためcat()に渡された文字列にを追加することを覚えておく必要がないことです。たとえば、上記を同じcat()出力と比較します。

> cat("File not supplied.\nUsage: ./program F=filename")
File not supplied.
Usage: ./program F=filename>

そして

> cat("File not supplied.\nUsage: ./program F=filename","\n")
File not supplied.
Usage: ./program F=filename
>

その理由は、print()あなたがやりたいことはありませんつまりprint()、あなたはショーにRレベルからオブジェクトのバージョン-この場合には、それは文字列です。文字列を表示するには、cat()およびなどの他の関数を使用する必要がありwriteLines()ます。「バージョン」とは、印刷された数値の精度が低下し、印刷されたオブジェクトに追加情報が追加される場合があるためです。


25

あなたはこれを行うことができます:

cat("File not supplied.\nUsage: ./program F=filename\n")

の値がになっcatているreturnことに注意してくださいNULL


3
しかし、最後の改行を忘れないでください。
ハドリー2010年

+1 @Shaneこれが役に立ったのを見ている他の何かのために猫( "\ n")が必要でした!ありがとう
アロス

7

また、writeLinesを使用すると、を使用して「\ n」改行文字を省くことができますc()。のように:

writeLines(c("File not supplied.","Usage: ./program F=filename",[additional text for third line]))

これは、上記の[3行目の追加テキスト]のように、固定入力と可変入力を組み合わせた複数行メッセージを記述する場合に役立ちます。


-1

catとの組み合わせを使用することもできますpaste0

cat(paste0("File not supplied.\n", "Usage: ./program F=filename"))

これは、変数を印刷出力に組み込むときに、より有用であると思います。例えば:

file <- "myfile.txt"
cat(paste0("File not supplied.\n", "Usage: ./program F=", file))
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.