Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python R中有z.fill函数吗_Python_R_Width_Fill - Fatal编程技术网

Python R中有z.fill函数吗

Python R中有z.fill函数吗,python,r,width,fill,Python,R,Width,Fill,我有一个数据框 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 这样,连接值的总长度是一个固定的

我有一个数据框

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列的超变量,并认为这将有助于下游处理


我猜它应该在粘贴函数中,但不确定如何“填充因子”,使其具有固定宽度

您可以使用
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$c您可以使用
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
尝试
sprintf(“%d%3s”,df$v,df$f)
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