我正在将一段用R语言编写的脚本转换为Julia语言,其中有一个R函数是names()函数。请问在Julia中有类似的函数吗?
在Julia中,DataFrame
有一个names
函数,用于返回列名,例如:
julia> using DataFrames
julia> x = DataFrame(rand(3,4))
3×4 DataFrames.DataFrame
│ Row │ x1 │ x2 │ x3 │ x4 │
├─────┼───────────┼──────────┼──────────┼──────────┤
│ 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 │
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包来添加此功能。您可以获取和设置每个维度的名称以及沿着每个维度的索引的名称。您可以在这里找到详细信息。
以开始使用它(类似于R中的
library`)。 - Bogumił Kamińskifieldnames
。type Foo
bar::Int
end
@show fieldnames(Foo)
baz = Foo(2)
@show fieldnames(baz)
names
来表示DataFrame
的列和对象的字段。Julia使用names
表示DataFrame
的列,但用fieldnames
表示对象的字段。 - Colin T Bowers