簡體   English   中英

R中是否有z.fill函數

[英]is there a z.fill function in R

我有一個數據框

df=data.frame(f=c('a','ab','abc'),v=1:3)

並創建一個新列:

df$c=paste(df$v,df$f,sep='')

結果是

> df
    f v    c
1   a 1   1a
2  ab 2  2ab
3 abc 3 3abc

我希望列c采用以下格式:

> df
    f v    c
1   a 1 1  a
2  ab 2 2 ab
3 abc 3 3abc

這樣連接值的總長度是一個固定的數字(在這種情況下是4個字符),並填充它將選擇一個字符,如| (在這種情況下\\ w)。

在R中有這樣的功能嗎? 我認為它類似於python中的z.fill函數,但我不是python程序員,並且寧願留在R而不是在語言之間切換以進行處理。 最終,我正在創建一個10列的超變量,並認為這有助於下游處理

我想這將是粘貼功能,但不知道如何'填充因子',以便它具有固定的寬度

您可以使用format()函數來打印列的值。 例如:

> format(df$f, width = 3, justify = "right")
[1] "  a" " ab" "abc"

所以你的代碼應該是:

df <- within(df, {
  c <- paste0(v, format(f, width = 3, justify = "right"))
})
df

結果:

> df
    f v    c
1   a 1 1  a
2  ab 2 2 ab
3 abc 3 3abc

您可以使用formatC函數,如下所示

df$c <- paste(df$v, formatC(as.character(df$f), width = 3, flag = " "), sep = "")

df
    f v    c
1   a 1 1  a
2  ab 2 2 ab
3 abc 3 3abc

數據

df <- data.frame(f = c('a','ab','abc'), v=1:3)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM