Dataframe 将Julia中的列名更改为字符串

Dataframe 将Julia中的列名更改为字符串,dataframe,julia,Dataframe,Julia,这似乎是个愚蠢的问题。最近从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, NewColName

这似乎是个愚蠢的问题。最近从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
但它不再起作用了。
任何帮助都将不胜感激。

在Dan的帮助下,发布替代解决方案,而无需创建新的ColNames向量:

names!(Matice, [Symbol('A' + (i-1)) for i in 1:(ncol(Matice))])

我认为值得补充三点:

1) 生成所需符号的最简单代码可能是

Symbol.('A':'A'+ncol-1)`
其中
ncol
是所需的列数

2) 当前,您可以从向量向量创建
数据帧
,并在构造函数中为变量命名,例如:

DataFrame([rand(10) for i in 1:10], Symbol.('A':'J'))
3) 合并并发布后(最多可能在几周内),您将能够使用矩阵编写相同的内容:

DataFrame(rand(10, 10), Symbol.('A':'J'))

试试
名字!(Matice,Symbol.(NewColNames))
-列名必须是符号(这就是错误消息所说的)的确!非常感谢,圣诞快乐