web-dev-qa-db-ja.com

Rの同じ行に文字列と変数の内容を表示する

テキストと変数の内容を同じ行に印刷する方法はありますか?例えば、

wd <- getwd()
print("Current working dir: ", wd)

これを可能にする構文については何も見つかりませんでした。

164
user2015601

pasteprintと一緒に使用できます

print(paste0("Current working dir: ", wd))

またはcat

cat("Current working dir: ", wd)
249
agstudy

{glue}はもっと良い文字列補間を提供します、 私の他の答えを見てください 。また、Dainisが正しく述べているように、sprintf()に問題がないわけではありません。

sprintf()もあります。

sprintf("Current working dir: %s", wd)

コンソール出力に出力するには、cat()またはmessage()を使います。

cat(sprintf("Current working dir: %s\n", wd))
message(sprintf("Current working dir: %s\n", wd))
54
krlmlr

あるいはmessageを使う

message("Current working dir: ", wd)

@ agstudyの答えがここに適しています

19
Jilber Urbina

これを行う最も簡単な方法はpaste()を使うことです。

> paste("Today is", date())
[1] "Today is Sat Feb 21 15:25:18 2015"

paste0()は次のようになります。

> paste0("Today is", date())
[1] "Today isSat Feb 21 15:30:46 2015"

文字列とxの間にデフォルトの区切り文字がないことに注意してください。文字列の末尾にスペースを使用すると簡単に解決できます。

> paste0("Today is ", date())
[1] "Today is Sat Feb 21 15:32:17 2015"

それからどちらかの関数をprint()と組み合わせます

> print(paste("This is", date()))
[1] "This is Sat Feb 21 15:34:23 2015"

または

> print(paste0("This is ", date()))
[1] "This is Sat Feb 21 15:34:56 2015"

他のユーザーが述べているように、cat()を使うこともできます

14
user1526693

{glue}パッケージ は文字列補間を提供します。この例では、{wd}は変数の内容に置き換えられます。複雑な式もサポートされています。

library(glue)

wd <- getwd()
glue("Current working dir: {wd}")
#> Current working dir: /tmp/RtmpteMv88/reprex46156826ee8c

2019年5月13日に Representxパッケージによって作成されました (v0.2.1)

印刷出力に[1]アーティファクトと"引用符が含まれていないことに注意してください。他の回答ではcat()を使用します。

11
krlmlr

他のユーザーが言ったように、cat()がおそらく最善の選択肢です。

@krlmlrはsprintf()の使用を提案しましたが、現在3番目の回答です。 sprintf()はお勧めできません。 Rのドキュメントから:

フォーマット文字列はOSのsprintf関数に渡され、フォーマットが正しくないと後者はRプロセスをクラッシュさせる可能性があります。

Catや他のオプションの上にsprintf()を使用するのに十分な理由はありません。

7
Dainis Boumber

あなたはRで文字列を変数値と組み合わせるためにpaste0またはcatメソッドを使うことができます

例えば:

paste0("Value of A : ", a)

cat("Value of A : ", a)
0
Codemaker