先行ゼロ(無効倍引数)を作成するために、Rの順にdata.tableとの組み合わせで担当者(0、X)を取得:私は例として、次のdata.tableを作成
dt <- data.table(x = c(1, 12, 200, 1600))
dt[, y := " "]
私の目標はにありますy列にx値を先行ゼロで拡張し、yの各エントリが4桁(0001,0012、0200,1600)であるように入力します。
次のように私の考えは次のとおりです。
dt[, y := x] # fill column with original values
dt[nchar(as.integer(x)) < 4, y := paste(paste(rep(0, 4-nchar(as.integer(x))), collapse=""), x, sep="")]
このコマンドはX未満4桁で構成されているかどうかを確認することになって、そして、もしそうであれば、ゼロの必要な数を生成し、でそれらを貼り付けています文字列の始まり。ただし、この文を実行すると、メッセージ「rep(0、4-nchar(as.integer(x))のエラー):無効な 'times'引数」が返されます。
私は、次のコマンドが正常に動作するので、私の基本的な考え方が正しいことを知っている:
dt[nchar(as.integer(x)) < 4, y := paste(paste(rep(0, 4), collapse=""), x, sep="")]
ここで、私は単純に(この場合は4)乱数によって担当者()の第2引数を置き換え。
したがって、rep()は明らかにxで作成された列参照を理解する上でいくつかの問題があります。他の関数(as.numeric()など)ではこれに問題はありません。
ありがとうございました!
はsprintfのに見て。 – Heroka