gpt4 book ai didi

julia - Julia 在 R 中的等效命名向量是什么?

转载 作者:行者123 更新时间:2023-12-05 01:20:05 25 4
gpt4 key购买 nike

R 中,我们可以为向量中的每个项目命名:

> x = c( 2.718 , 3.14 , 1.414 , 47405 )            # define the vector
> names(x) = c( "e" , "pi" , "sqrt2" , "zipcode" ) # name the components
> x[c(2,4)] # which indices to include
pi zipcode
3.14 47405.00
> x[c(-1,-3)] # which indices to exclude
pi zipcode
3.14 47405.00
> x[c(FALSE,TRUE,FALSE,TRUE)] # for each position, include it?
pi zipcode
3.14 47405.00

Julia 中,我的第一个想法是使用 Dict:

julia> x = [2.718, 3.14, 1.414, 47405]
4-element Array{Float64,1}:
2.718
3.14
1.414
47405.0

julia> namelist = ["e", "pi", "sqrt2", "zipcode"]
4-element Array{ASCIIString,1}:
"e"
"pi"
"sqrt2"
"zipcode"

julia> xdict=Dict(zip(namelist, x))
Dict{ASCIIString,Float64} with 4 entries:
"e" => 2.718
"zipcode" => 47405.0
"pi" => 3.14
"sqrt2" => 1.414

julia> xdict["pi"]
3.14

但是,Dict 丢失了原始数组的顺序,这意味着我无法访问 R 中的项目:

julia> xdict[[2,4]]
ERROR: KeyError: [2,4] not found in getindex at dict.jl:718

Julia 中是否有命名数组之类的东西?如果不是,处理此类问题的 Julia 方法是什么?

最佳答案

尝试使用 NamedArrays 复制 R 代码:

julia> using NamedArrays

julia> xx = NamedArray([2.718, 3.14, 1.414, 47405],
(["e", "pi", "sqrt2", "zipcode"],))
4-element NamedArrays.NamedArray...
e 2.718
pi 3.14
sqrt2 1.414
zipcode 47405.0

julia> xx[[2,4]]
2-element NamedArrays.NamedArray...
pi 3.14
zipcode 47405.0

julia> xx[setdiff(1:end,[1,3])]
2-element NamedArrays.NamedArray...
pi 3.14
zipcode 47405.0

julia> xx[[1:end...][[false,true,false,true]]]
2-element NamedArrays.NamedArray...
pi 3.14
zipcode 47405.0

索引技术不是最佳的。 欢迎在评论中进行改进。也可以轻松地增强 NamedArrays 以获得更好的索引(这在 R 中会更难)。

关于julia - Julia 在 R 中的等效命名向量是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34561641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com