[英]Randomly fill a 3D grid according to a probability density function p(x,y,z)
[英]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.