2011-06-23 13 views
6

私はRを使用しています 私は都市のベクトルを持っていて、これらの都市名を個別に の文字列で使用したいとします。文字列内の要素に異なる値を割り当てる

city = c("Dallas", "Houston", "El Paso", "Waco") 

phrase = c("Hey {city}, what's the meaning of life?") 

私は4つの別々のフレーズで終わりたいと思います。

"Hey Dallas, what's the meaning of life?" 
"Hey Houston, what's the meaning of life?" 
... 

私は、単純な/効率的な方法でこのタスクを実行することができますPythonでのフォーマットと同様の機能は、()はありますか?

以下のようなことは避けたいですか?

for(i in city){ 
    phrase = c("Hey ", i, "what's the meaning of life?") 
} 

答えて

14

sprintf

> city = c("Dallas", "Houston", "El Paso", "Waco") 
> phrase = c("Hey %s, what's the meaning of life?") 
> sprintf(phrase, city) 
[1] "Hey Dallas, what's the meaning of life?" "Hey Houston, what's the meaning of life?" 
[3] "Hey El Paso, what's the meaning of life?" "Hey Waco, what's the meaning of life?" 
+0

1は、(sprintfのを知っていたことはありません)ありがとう! – ATMathew

+0

printfはありませんが、 'printf < - function(format_string、...){cat(sprintf(format_string、...))}' – Zach

7

は、それがする必要がありますどのように複雑に応じて、簡単なペーストは、仕事をすることができます:

paste("Hey ", city, ", what's the meaning of life", sep="") 

が何をしたいん。ザックの答え@

は、sprintfのはしかし多くの利点を持っている、などダブルスの適切な形式のような

関連する問題