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

问题描述 投票:1回答:2

这似乎是一个愚蠢的问题。最近刚从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

但它不再起作用了。任何帮助将不胜感激。

dataframe julia
2个回答
1
投票

我认为值得添加三个评论:

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'))

0
投票

在Dan的帮助下,在不创建NewColNames向量的情况下发布替代解决方案:

names!(Matice, [Symbol('A' + (i-1)) for i in 1:(ncol(Matice))])
© www.soinside.com 2019 - 2024. All rights reserved.