gpt4 book ai didi

database - 如何在 JULIA 中使用 writecsv/writedlm 写入带标题的输出

转载 作者:搜寻专家 更新时间:2023-10-30 22:27:13 25 4
gpt4 key购买 nike

以下代码在 Julia 中运行,它写入带有 header 的 AB 的值。

我想知道是否有更优雅的方式将标题作为 writecsvwritedlm 中的选项引入

Header = ["a" "b"]
A= [1,2,3]
B=[3,4,5]
Data = [Header ; A[:] B[:]]
Path = "//OUTPUT//Table//Hydraulic_Inv.csv"
println(Path)
writecsv(Path ,Data )

输出

 a,b
1,3
2,4
3,5

最佳答案

首先,writecsv 在 v0.7 中已弃用,因此最好不要现在开始使用它,因为它将在 v1.0 中完全消失。

他们为什么要摆脱 writecsv?因为对于 v1.0,julia Base 被剥离回绝对必需品。如果您需要在 v1.0 中使用 csv 文件,推荐的方法是使用 CSV包裹。例如(使用 Julia v1.1.1):

using CSV, DataFrames
x = [1 2 ; 3 4]
header = ["a", "b"]
CSV.write(somefilepath, DataFrame(x), header=header)

请注意,在 Julia v1.0 中它是:

CSV.write(somefilepath, DataFrame(x), colnames=header)

如果您不必在对 DataFrame 的调用中包装 x 就好了。我假设在某个时候会放置一个包装器,这样就不必发生了。与此同时,这是一个小小的不便。

如果您绝对坚持只使用 Base 中的函数,那么接下来您将需要使用 writedlm。这个函数没有添加标题的选项,所以你基本上需要做你当前正在做的事情,即:

x = [1 2 ; 3 4]
header = ["a" "b"]
writedlm(somefilepath, ',', [header ; x])

注意第二个参数确保写入文件中的分隔符是逗号。

另请注意,这种方法几乎肯定会(最终)比使用 CSV 慢。这是因为 [header ; x] 构造一个 Any 类型的临时临时数组,这(据我了解)意味着后续的写操作将相当低效。相比之下,CSV 包工具经过(将)精确优化以避免此类问题,并且理想情况下获得与读取和写入 R 中的数据帧兼容的读取/写入时间(即非常快).

关于database - 如何在 JULIA 中使用 writecsv/writedlm 写入带标题的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49684253/

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