2

先頭または末尾のゼロを条件付きで追加する方法について教えてください。

icd9 診断を含む 1 つの列を持つデータフレームがあります。ベクトルとして、列は次のようになります。

"33.27" "38.45" "9.25" "4.15" "38.45" "39.9" "84.1" "41.5" "50.3" 

中間のピリオドを含めて、すべての値の長さが 5 である必要があります ("" は数えません)。ピリオドの前に 1 桁の値がある場合は、先行ゼロが必要です。値がピリオドの後に 1 桁ある場合は、最後にゼロが必要です。したがって、結果は次のようになります。

"33.27" "38.45" "09.25" "04.15" "38.45" "39.90" "84.10" "41.50" "50.30" 

R のベクトルは次のとおりです。

icd9 <- c("33.27", "38.45", "9.25", "4.15", "38.45", "39.9", "84.1", "41.5", "50.3" )
4

4 に答える 4

0

sprintfベクトルを数値に変換してから使用することもできます。

sprintf("%05.2f", as.numeric(icd9))
[1] "33.27" "38.45" "09.25" "04.15" "38.45" "39.90" "84.10" "41.50" "50.30"

ノート

  • の例は?sprint、適切な形式を理解するためのものです。
  • この例ではうまく機能しますが、ここでは数値の精度が原因でエラーが発生するリスクがあります。
于 2017-01-06T15:56:31.930 に答える
0

最大文字数の引数を受け取るchangeと呼ばれるこの関数を使用すると、役立つと思います

 change<-function(x, n=max(nchar(x))) gsub(" ", "0", formatC(x, width=n))
    icd92<-gsub(" ","",paste(change(icd9,5)))
于 2014-01-20T04:40:16.217 に答える