2017-04-26 4 views
1

v2のすべてのセルがmaxcharの文字長を持つように先頭のスペースをv2に追加したいと思います。私は1つのディスプレイに異なるプロットを組み合わせようとしています。これは私が持っているアライメントの問題を助けます。列内のすべてのセルの文字長が最大長と等しいように先行スペースを追加します

dat <- data.frame(v1=rep("item", 6), 
        v2=c(rep("10", 2), 
         rep("100", 2), 
         rep("1000", 2)) 
       ) 
dat[2] <- as.character(dat[,2]) 
maxchar <- max(nchar(dat[,2])) 
+1

'dat $ v2 < - stringr :: str_pad(dat $ v2、maxchar、" left ")' – Nate

+0

、@NateDay。 –

答えて

1

私たちは、あなたがstringiパッケージでこれを行うことができformat

dat$v2 <- format(dat[,2], width = maxchar, justify = "right") 
dat$v2 
#[1] " 10" " 10" " 100" " 100" "1000" "1000" 
1
paste(sapply(maxchar - nchar(dat$v2), function(n) 
    paste(rep(" ", max(n,0)), collapse = "")), dat$v2, sep = "") 
#[1] " 10" " 10" " 100" " 100" "1000" "1000" 
1

を使用することができます。

stringi::stri_pad_left(dat$v2, nchar(max(dat$v2)), pad = " ") 

それが最大値の長さに応じて、左にスペースが追加されます。

関連する問題