Julia 是否可以在推送中解包参数字典!()功能?

Julia 是否可以在推送中解包参数字典!()功能?,julia,argument-unpacking,juliadb,Julia,Argument Unpacking,Juliadb,我知道JuliaDB的边缘可能仍然有点粗糙,但我想知道是否有可能这样做: 推!(行(mse_表、表参数…)#添加行 而不是像这样: 推!(行(mse_表),(样本=i,固定=0.4,silverman=0.3,abramson=0.2,ervkde=0.1)添加行 为了代码的可复制性,下面创建了一个可爱的小表格,其中包含JuliaDB: 使用JuliaDB colnames=[:samples,:fixed,:silverman,:abramson,:ervkde] 主键=[:示例] co

我知道JuliaDB的边缘可能仍然有点粗糙,但我想知道是否有可能这样做:

推!(行(mse_表、表参数…)#添加行
而不是像这样:

推!(行(mse_表),(样本=i,固定=0.4,silverman=0.3,abramson=0.2,ervkde=0.1)添加行

为了代码的可复制性,下面创建了一个可爱的小表格,其中包含JuliaDB:

使用JuliaDB
colnames=[:samples,:fixed,:silverman,:abramson,:ervkde]
主键=[:示例]
coltypes=[Int[],Float64[],Float64[],Float64[],Float64[]
样本大小=[100200300]
mse_table=table(coltypes…,name=colnames,pkey=primary_key)#初始化空表
对于样品尺寸的i
示例_值=(i,0.4,0.3,0.2,0.1)
zip中(col,val)的表params=[(col=>val)(colnames,示例_值)]
#我的问题是,有没有办法做到这一点:
#推!(行(mse_表、表参数…)#添加行
#与此相反:
推(行(mse_表),(样本=i,固定=0.4,silverman=0.3,abramson=0.2,ervkde=0.1)添加行
mse_table=table(mse_table,pkey=primary_key,copy=false)#按主键对行排序
结束
mse_表=表(唯一(mse_表),pkey=主键)#删除重复行


提前感谢。

您可以通过以下方式从
对数组中构建一个
命名双倍

julia> arr = [:a=>1, :b=>2]
2-element Array{Pair{Symbol,Int64},1}:
 :a => 1
 :b => 2

julia> nt = (; arr...)
(a = 1, b = 2)
因此,以下示例应该有效:

julia> using JuliaDB
julia> colnames = [:samples, :fixed, :silverman, :abramson, :ervkde];
julia> primary_key = [:samples];
julia> coltypes = [Int[], Float64[],Float64[],Float64[],Float64[]];
julia> mse_table = table(coltypes..., names=colnames, pkey=primary_key);

julia> example_values = (1, 0.4, 0.3, 0.2, 0.1);

       # more compact than the comprehension you used;
       # maybe not more readable...
julia> row = map(Pair, colnames, example_values)
5-element Array{Pair{Symbol,B} where B,1}:
   :samples => 1
     :fixed => 0.4
 :silverman => 0.3
  :abramson => 0.2
    :ervkde => 0.1

       # (; row...) builds a NamedTuple
julia> push!(rows(mse_table), (; row...));
julia> mse_table
Table with 1 rows, 5 columns:
samples  fixed  silverman  abramson  ervkde
───────────────────────────────────────────
1.0      0.4    0.3        0.2       0.1

NB:我根本不使用
JuliaDB
,所以这种方法可能不是惯用的