R 应用中的数字将被空格填充

R 应用中的数字将被空格填充,r,R,我想根据数据框中的两个变量创建一个文件夹名,但这里有点不对劲 head(clustering) line x y qerror 1 200 15 19 1.118677 2 201 11 19 1.038482 3 202 0 6 1.238026 4 203 0 18 1.321878 5 204 0 12 1.204173 6 205 5 0 1.394773 str(clustering) 'data.frame': 3406 obs. of 4

我想根据数据框中的两个变量创建一个文件夹名,但这里有点不对劲

head(clustering)
  line  x  y   qerror
1  200 15 19 1.118677
2  201 11 19 1.038482
3  202  0  6 1.238026
4  203  0 18 1.321878
5  204  0 12 1.204173
6  205  5  0 1.394773
str(clustering)
'data.frame':   3406 obs. of  4 variables:
 $ line  : Factor w/ 3406 levels "1001","1003",..: 814 822 831 841 847 858 891 ...
 $ x     : num  15 11 0 0 0 5 16 8 1 0 ...
 $ y     : num  19 19 6 18 12 0 14 19 17 18 ...
 $ qerror: num  1.12 1.04 1.24 1.32 1.2 ...
当我尝试使用x和y列创建文件夹名称时,我会执行以下操作:

apply(head(clustering),1,function(x){paste0('x',x[2],'_by_y',x[3])})
           1            2            3            4            5            6 
"x15_by_y19" "x11_by_y19" "x 0_by_y 6" "x 0_by_y18" "x 0_by_y12" "x 5_by_y 0" 
如您所见,如果该值小于10,则x和y将获得额外的空间。但当我不使用apply时,它似乎起了作用

paste0('x',clustering[3,2],'_by_y',clustering[3,3])
[1] "x0_by_y6"

有人知道为什么会有空格吗?

这是因为
apply
中的以下几行:

if (!dl) 
  stop("dim(X) must have a positive length")
if (is.object(X)) 
  X <- if (dl == 2L) 
    as.matrix(X)
else as.array(X)

我可以用给定的col类生成它。在apply中,每一行都被强制转换为字符。不知何故,由于因子(?),带有一个数字的整数数字被格式化为前导空格<代码>应用(头(聚类)[2:3],1,函数(x){paste0('x',x[1],'u by_y',x[2])}将起作用(将
x
向量转换为数字)。最近的宣传是什么?为什么不只是一些好的矢量化?类似于
len@lukeA,这是因为
format
lapply(mydf, format)
# $line
# [1] "200" "201" "202" "203" "204" "205"
# 
# $x
# [1] "15" "11" " 0" " 0" " 0" " 5"
# 
# $y
# [1] "19" "19" " 6" "18" "12" " 0"
# 
# $qerror
# [1] "1.118677" "1.038482" "1.238026" "1.321878" "1.204173" "1.394773"