这似乎是一个愚蠢的问题。最近刚从Julia开始,遇到了这个微不足道的问题。
创建矩阵如下:
Matice = rand(10, 10)
Matice = convert(DataFrame, Matice)
想要将列名更改为A,B,C,......
NewColNames = Array(String,ncol(Matice))
for i = 1:(ncol(Matice))
NewColNames[i] = string('A' + (i-1))
end
names!(Matice, NewColNames)
最后一行产生错误。还尝试做更直接的事情,例如:
for i = 1:(ncol(Matice))
names(Matice)[i] = string('A' + (i-1))
end
但它不再起作用了。任何帮助将不胜感激。
我认为值得添加三个评论:
1)生成所需符号的最简单的代码可能是
Symbol.('A':'A'+ncol-1)`
其中ncol
是您想要的列数。
2)目前你可以从向量向量创建DataFrame
并在构造函数中给出变量的名称,例如:
DataFrame([rand(10) for i in 1:10], Symbol.('A':'J'))
3)当this PR to DataFrames合并并发布时(最多可能在几周内),您将能够使用矩阵编写相同的内容:
DataFrame(rand(10, 10), Symbol.('A':'J'))
在Dan的帮助下,在不创建NewColNames向量的情况下发布替代解决方案:
names!(Matice, [Symbol('A' + (i-1)) for i in 1:(ncol(Matice))])