2016-07-12 9 views
2

Rでは、関数に/ catを出力すると、関数が呼び出されるとstdoutに正しく出力されます。出力をcapture.output経由で変数に入れると、行末の文字「\ n」が欠けています。ここR内のcapture.outputの行末に文字がありません

は、単純なRコードの例である:

ff <- function(){ print(-5:-1);cat("dummy line\n");print(1:5)} 
ff() 

出力を与える:

[1] -5 -4 -3 -2 -1 
dummy line 
[1] 1 2 3 4 5 

、次のコードは、単一の行に出力を与えます。

ff_out<-capture.output(ff()) 
ff_out 

は、私は非常に単純な何かが欠けする必要があります(つまり、「\ n」は不足していると)

1行で同じ出力を提供します。上記の出力と同じ結果を得るには、これを解決してください。

+1

ニースの最初の質問:簡潔で再現可能な例で、フォーマット済みです。ようこそ! – Gregor

答えて

1

実際には「1行に」はありません。これは長さ3のベクトルで、各要素は線の1つです。あなたは

cat(ff_out, sep="\n") 

# [1] -5 -4 -3 -2 -1 
# dummy line 
# [1] 1 2 3 4 5 

str(ff_out) 
# chr [1:3] "[1] -5 -4 -3 -2 -1" "dummy line" "[1] 1 2 3 4 5" 

のように開始時に一部が、それは長さ3の文字ベクトルであることを示し、strが有用である、オブジェクトを検査することができます。

+0

出力行の先頭にある#コメントは、Rとのstackoverflowで標準です。 – Frank

+0

解決方法ありがとうございました[Frank](http://stackoverflow.com/users/1191259/frank)それは私の質問に答えます。非常に高く評価。 –

+0

@MaheshYadavこれがうまくいく場合は、投票の横のチェックマークをクリックして解決策を受け入れることを検討してください。 – akrun

関連する問題