首页 > 解决方案 > 如何在 Julia 中提供可重现的样本数据

问题描述

在这里stackoverflow.com-当我提供示例数据以制作可重复的示例时,我该如何以朱利安的方式做到这一点?

例如Rdput(df)将输出一个字符串,您可以使用它df再次创建。因此,您只需在 stackoverflow 和 bam 上发布结果!- 可重现的例子。那么,在 Julia 中应该怎么做呢?

标签: julia

解决方案


我认为通常最简单的做法是在您的示例中简单地构造一个带有随机数等的 MWE DataFrame,因此无需读取/写入。

在不方便的情况下,您可能会考虑写入 IO 缓冲区并获取其字符串表示形式,然后人们可以以相同的方式反向读取:

julia> using CSV, DataFrames

julia> df = DataFrame(a = rand(5), b = rand(1:10, 5));

julia> io = IOBuffer()
IOBuffer(data=UInt8[...], readable=true, writable=true, seekable=true, append=false, size=0, maxsize=Inf, ptr=1, mark=-1)

julia> string_representation = String(take!(CSV.write(io, df)))
"a,b\n0.5613453808585873,9\n0.3308122459718885,6\n0.631520224612919,9\n0.3533712075535982,3\n0.35289980394398723,9\n"

julia> CSV.read(IOBuffer(string_representation))
5×2 DataFrame
│ Row │ a        │ b     │
│     │ Float64  │ Int64 │
├─────┼──────────┼───────┤
│ 1   │ 0.561345 │ 9     │
│ 2   │ 0.330812 │ 6     │
│ 3   │ 0.63152  │ 9     │
│ 4   │ 0.353371 │ 3     │
│ 5   │ 0.3529   │ 9     │

推荐阅读