【发布时间】:2015-03-20 23:41:03
【问题描述】:
虽然在 Julia 中读取 R 数据集已经受到了足够的关注,但有时在 Julia 中完成的计算结果需要对 R 可读。为了实现这一点,我试图将 DataFrame.jl 对象保存在 HDF5 文件中。这是到目前为止的代码,在当前可用的HDF5.jl 方法的限制内编写:
using DataFrames, HDF5
df = DataFrame(coln1 = 1:4, coln2 = ["M", "F", "F", "M"], coln3 = int8([1, 0, 1, 1]))
h5open("trydf.h5", "w") do file
g = g_create(file, "df") # create a group
for cnm in DataFrames._names(df)
g["$cnm"] = convert(Array, df[cnm])
end
attrs(g)["Description"] = "Julia DataFrame columns"
end
然后可以使用 rhdf5 包工具在 R 中重新组装数据框。 有没有更优雅的方法来实现这一点?不需要将数据框拆分并在 R 中重新组装的东西,在此过程中会丢失一些列类型(例如布尔值不起作用)?
【问题讨论】:
-
您是否愿意考虑保存为 hdf5 以外的格式?如果数据集不是很大并且 Julia 数据还没有在数据框中,那么保存为 CSV 文件可能是有意义的。
-
CSV 确实是一个合理的选择,具有中等大小的数据框。然而,HDF5 的吸引力在于层次结构包含比我的最小示例更复杂的对象的可能性,并且在 Julia 和 R 之间进行交换时能够保留一些对象结构会很有帮助。