2017-12-04 27 views
1

生成された '\'を取り除こうとしているので、cat()を実行してそれをクリアします。しかし、後でgsubfn文字列で一致させるために、その出力を変数に割り当てる必要があります。 (escape charactersと呼ばれる)\文字が実際に文字列に存在しないためR |変数にCat()出力を代入する

>topheader <-'<div id="editor1" class="shinytinymce shiny-bound-input" 
style="resize: none; width: 100%; height: 100%; border-style: none; 
background: gainsboro;">' 

>topheader 
[1] "<div id=\"editor1\" class=\"shinytinymce shiny-bound-input\" 
style=\"resize: none; width: 100%; height: 100%; border-style: none; 
background: gainsboro;\">" 

>cat(topheader) 
[1] <div id="editor1" class="shinytinymce shiny-bound-input" style="resize: 
none; width: 100%; height: 100%; border-style: none; background: 
gainsboro;"> 

> test<-cat(topheader) 


> test 
NULL 
+1

をあなたがすることはできません。 'cat'は常に' NULL'を返します。厳密には、コンソール/ファイルに印刷することです。これらのバックスラッシュは内部引用符をエスケープするためだけにあります。彼らは実際にそこにいません。 –

+0

@RichScriven実際には、 'cat'の出力を' capture.output() 'を使って割り当てることができます。しかし、それは実際の問題が何か他のものであるので、ここで助けにはなりません....(次のコメントを見てください)。 – dww

+0

@DannyRamirezここでは、基本的な誤解があります。 \文字は実際には文字列には存在しません。出力をコンソールに出力するときに 'print'によって単純に表示されます。 – dww

答えて

0

としては、あなたを助けにはなりません変数にcatの出力を割り当て、コメントですでに示しました。文字列をコンソールに出力すると、そのように表示されます。

しかし、別の理由でcatの出力を割り当てようとしている他の人々の利益のために、より完全な答えが必要です。 catには出力をフォーマットするための便利な機能がいくつかあります。誰かが変数に格納する必要があります。この場合、capture.outputを使用してこれを達成できます。例えば、

cat(paste(letters, 100* 1:26), fill = TRUE, labels = paste0("{", 1:10, "}:")) 

は、便利なコンソールの幅で奇数ラインに分け、次の出力を生成します。

# {1}: a 100 b 200 c 300 d 400 e 500 f 600 g 700 h 800 i 900 
# {2}: j 1000 k 1100 l 1200 m 1300 n 1400 o 1500 p 1600 
# {3}: q 1700 r 1800 s 1900 t 2000 u 2100 v 2200 w 2300 
# {4}: x 2400 y 2500 z 2600 

我々はA作成

x = capture.output(
     cat(paste(letters, 100* 1:26), fill = TRUE, labels = paste0("{", 1:10, "}:")) 
    ) 

ことで、この出力をキャプチャすることができます文字ベクトルxで、各要素は出力の行に対応します。

# [1] "{1}: a 100 b 200 c 300 d 400 e 500 f 600 g 700 h 800 i 900 " 
# [2] "{2}: j 1000 k 1100 l 1200 m 1300 n 1400 o 1500 p 1600 "  
# [3] "{3}: q 1700 r 1800 s 1900 t 2000 u 2100 v 2200 w 2300 "  
# [4] "{4}: x 2400 y 2500 z 2600" 

あなたが好きなら、あなたは使用して改行で分離された単一の文字列には、このベクトルを折りたたむことができます。

x = paste0(x, collapse = '\n') 
関連する問題