2017-04-26 56 views
1

我想向v2添加前導空格,以使v2的所有單元格的字符長度爲maxchar。我試圖將不同的情節組合成一個顯示,這將幫助我解決我遇到的對齊問題。添加前導空格,以便列中所有單元格的字符長度等於最大長度

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

Solid,@NateDay。 –

回答

1

我們可以使用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包做到這一點:

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

將根據最大值的長度加上左右空間。