小伙伴说他写个CSV文件,名字就变了,无缘无故
|
就被改了,还有些名字被强加了
X
。我注意到了他写的对象是
data.frame(d)
,这锅绝对是
data.frame
的。
我们可以试一下:
> d = matrix(rnorm(4), ncol=2)
> colnames(d) = c("A|B", "123")
> write.csv(data.frame(d))
"","A.B","X123"
"1",-0.601247669017546,0.802654193340092
"2",-0.128752028398414,0.430829592244036
没错,自己给变了。
来一张Drag Queen, 真的是同一人,你以为你约了个妹纸,结果却是扣脚大叔,R经常干这事🤡
其实如果我们不
data.frame
强转的话,一切都是OK的。
> write.csv(d)
"","A|B","123"
"1",-0.601247669017546,0.802654193340092
"2",-0.128752028398414,0.430829592244036
我们不防再试一下,自己转为
data.frame
,看看是不是这样,结果必须也是,所以这锅就是
data.frame
的。
> d = data.frame(d)
> colnames(d)
[1] "A.B" "X123"
解决方案
既然转成
data.frame
之后,它变了,那我们就再变回去呗。
> colnames(d) = c("A|B", "123")
> colnames(d)
[1] "A|B" "123"
> write.csv(d)
"","A|B","123"