1つのオプションは、%d
はフォーマット関数(printf
、sprintf
、等)のCファミリーからの符号付き整数の標準フォーマットフラグである
paste0(sprintf("'%d'", 1:4), collapse = ", ")
#[1] "'1', '2', '3', '4'"
paste0
でsprintf
を使用することです。ヘルプファイル(?sprintf
)にさまざまなオプションが表示されます。
sprintf
呼び出しが個々の要素の書式設定を処理し、paste0(..., collapse = "<whatever>")
が要素の組み合わせを処理するため、これは他の代替方法よりも優先します。あなたの意見は異なるかもしれません。私は、例えばなど、INSERT
文の束をSQL Serverにコピーするか、またはC++のマクロを生成するために、冗長な表現を生成する必要がある場合に
私は頻繁に、paste0
および他の機能と組み合わせて、sprintf
& cat
を使用します
cat(sprintf("INSERT INTO #tmp(x, y, z) VALUES('%s', %d, %.2f);",
letters[1:5], 1:5, rnorm(5)),
sep = "\n"
)
#INSERT INTO #tmp(x, y, z) VALUES('a', 1, -1.10);
#INSERT INTO #tmp(x, y, z) VALUES('b', 2, 0.24);
#INSERT INTO #tmp(x, y, z) VALUES('c', 3, -0.82);
#INSERT INTO #tmp(x, y, z) VALUES('d', 4, -0.46);
#INSERT INTO #tmp(x, y, z) VALUES('e', 5, 0.72);
'sep =" '、' "'(余分な '''に注意してください)、次に '' 'の文字列のまわりに' '' + paste0(... )+ "'" '、基本的には –
@nrussell答えとして投稿してください。 ''%d 'が何を意味するのかを説明できるのであれば、私は感謝しています。ありがとうございました。 – Clarinetist