如何控制整数类型列的data.frame中的粘贴行为?

如何控制整数类型列的data.frame中的粘贴行为?,r,R,下面是示例代码,它生成了有趣的输出: > gg<-data.frame(x=c("a","b"),y=as.integer(c(1000,100000))) > gg x y 1 a 1000 2 b 100000 > apply(gg,1,paste,collapse="") [1] "a 1000" "b100000" > apply(gg[1,],1,paste,collapse="") 1 "a1000" >gg-gg

下面是示例代码,它生成了有趣的输出:

> gg<-data.frame(x=c("a","b"),y=as.integer(c(1000,100000)))
> gg
  x      y
1 a   1000
2 b 100000
> apply(gg,1,paste,collapse="")
[1] "a  1000" "b100000"
> apply(gg[1,],1,paste,collapse="")
      1 
"a1000" 
>gg-gg
xy
1000美元
2 b 100000
>应用(gg,1,粘贴,折叠=)
[1] “1000”“b100000”
>应用(gg[1,],1,粘贴,折叠=)
1.
“a1000”

在第一次
apply
run中,R不知何故知道如何填充额外的空格。它是如何做到这一点的?是否有可能控制这种行为

apply
仅适用于数组或矩阵,因此它首先必须将data.frame转换为矩阵<代码>as.matrix(gg)创建填充

看作.matrix.data.frame
,填充是由调用
格式
格式.default
)引起的,它最终调用
prettyNum
prettyNum
有一个
preserve.width
参数,默认值为
“common”

如果希望对该行为进行更多控制,请在调用
apply
之前将data.frame中的每列转换为字符向量:

gg[,2] <- as.character(gg[,2])
apply(gg,1,paste,collapse="")
# [1] "a1000"   "b100000"

gg[,2]看起来似乎是在假设两者应该具有相同长度的原子。因此,动态地将sep=[value]设置为该值?您想要什么样的输出?从
?apply
,“如果阵列是二维的(例如,数据帧),则apply尝试通过as.matrix或通过as.array强制[X]到阵列”
as.matrix()
通过
format()
转换为字符,这有一个参数
trim
,您可以尝试将其更改为TRUE以抑制前导空格。