我将重要元数据存储在R对象中作为属性。我想将我的工作流程迁移到Julia,我正在寻找一种方法来至少暂时将这些属性表示为Julia可以访问的内容。然后我可以开始考虑扩展RData
包以用实际对象填充这个数据结构'属性。
据我所知,在DataFrame中使用标签或单位等内容进行注释 - 我认为对象的最重要用途是'属性 - 可能会在DataFrames
包中实现一段时间(https://github.com/JuliaData/DataFrames.jl/issues/35)。但我问的是更一般的解决方案,并不依赖于这个特定的用例。
答案 0 :(得分:4)
在Julia中,定义自己的类型是理想的 - 您只需在类型中创建字段来存储属性。在R中,将事物存储为属性的好处是它们不会影响类型的调度方式 - 例如向Vector添加元数据并不会使其像Vector一样停止运行。在julia中,这种方法稍微复杂一些 - 您必须为类型https://docs.julialang.org/en/latest/manual/interfaces/#man-interface-array-1定义AbstractVector
接口,使其行为类似于Vector。
从本质上讲,这意味着工作流程解决方案略有不同 - 例如通常,R中的属性元数据用于在从函数返回时将元数据关联到对象。在Julia中执行类似操作的简单方法是让函数返回一个元组并将结果赋值给元组:
function ex()
res = rand(5)
met = "uniformly distributed random numbers"
res, met
end
result, metadata = ex()
我认为没有计划实现像R这样的属性。