在Julia中是否有类似names()的函数?

4

我正在将一段用R语言编写的脚本转换为Julia语言,其中有一个R函数是names()函数。请问在Julia中有类似的函数吗?


1
只是注意到你得到的两个答案基于问题的详细程度同样有效。R使用names来表示DataFrame的列和对象的字段。Julia使用names表示DataFrame的列,但用fieldnames表示对象的字段。 - Colin T Bowers
2个回答

6

DataFrames

在Julia中,DataFrame有一个names函数,用于返回列名,例如:

julia> using DataFrames

julia> x = DataFrame(rand(3,4))
3×4 DataFrames.DataFrame
│ Row │ x1        │ x2       │ x3       │ x4       │
├─────┼───────────┼──────────┼──────────┼──────────┤
│ 10.7211980.6058820.1919410.597295 │
│ 20.05378360.6196980.7649370.273197 │
│ 30.6799520.8995230.2061240.928319 │

julia> names(x)
4-element Array{Symbol,1}:
 :x1
 :x2
 :x3
 :x4

为了设置 DataFrame 的列名,您可以使用 names! 函数(继续上面的示例):

julia> names!(x, [:a,:b,:c,:d])
3×4 DataFrames.DataFrame
│ Row │ a         │ b        │ c        │ d        │
├─────┼───────────┼──────────┼──────────┼──────────┤
│ 1   │ 0.721198  │ 0.605882 │ 0.191941 │ 0.597295 │
│ 2   │ 0.0537836 │ 0.619698 │ 0.764937 │ 0.273197 │
│ 3   │ 0.679952  │ 0.899523 │ 0.206124 │ 0.928319 │

数组

标准数组不支持命名其维度。但是,您可以使用NamedArrays.jl包来添加此功能。您可以获取和设置每个维度的名称以及沿着每个维度的索引的名称。您可以在这里找到详细信息。


谢谢!我是Julia的新手,下载了github上的包后,我不知道如何应用它。你能给予一些建议吗? - A. Hartman
如果您是新手,我建议使用Julia 0.6.3。您可以在此处阅读如何操作:https://docs.julialang.org/en/stable/manual/packages/#Adding-and-Removing-Packages-1。简短的说明如下。写入`Pkg.add("DataFrames")`(类似于R中的`install.packages`)以安装DataFrames.jl包。然后写入`using DataFrames以开始使用它(类似于R中的library`)。 - Bogumił Kamiński

1
我不是 R 专家,但我认为你想要 fieldnames
type Foo
    bar::Int
end
@show fieldnames(Foo)
baz = Foo(2)
@show fieldnames(baz)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接