如何在Julia中使用Writecsv/Writedlm写入带有标题的输出 [英] How to write outputs with header by using writecsv/writedlm in JULIA

查看:58
本文介绍了如何在Julia中使用Writecsv/Writedlm写入带有标题的输出的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下代码在Julia中运行,它写入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中,JuliaBase被剥离到绝对必要的位置。如果您需要在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中的数据帧兼容的读/写时间(即,非常快)。

这篇关于如何在Julia中使用Writecsv/Writedlm写入带有标题的输出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆