2

これは、"1:" から "9:" までの任意のインスタンスを見つけて "01:" から "09:" に置き換え、"10:" またはそれ以上はそのままにしておくために書いたものです。サンプル スクリプトを次に示します。

region = c("18:1-100","16:1-100","X:1-100","2:1-100","4:1-100")

to.replace=grep("^[[:digit:]]:", region)
replacement=grep("^[[:digit:]]:", region, value=T)
replacement=paste(0,replacement,sep="")

for (i in length(to.replace)){
  region[to.replace[i]]=replacement[i]
}

「地域」の最後の出現でのみ機能するため、for ループに何か問題があると思います。何がわからないのですか。

4

2 に答える 2

4

for ループを次のように置き換えるだけです。

region[to.replace] <- replacement
于 2013-03-15T11:52:12.133 に答える
0

あなたはそれを実行することができますlapply...

region = c("18:1-100","16:1-100","X:1-100","2:1-100","4:1-100")
lapply( region , function(x){ r <- grepl("^[[:digit:]]:", x) ; ifelse( r , paste0( 0 , grep("^[[:digit:]]:", x , value=T) ) , x ) } )
于 2013-03-15T11:56:46.967 に答える