如何在Julia中使用Writecsv/Writedlm写入带有标题的输出 [英] How to write outputs with header by using writecsv/writedlm in JULIA
本文介绍了如何在Julia中使用Writecsv/Writedlm写入带有标题的输出的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
以下代码在Julia中运行,它写入A
、B
的值,并带有标题。
我想知道是否有更好的方式将标题作为writecsv
或writedlm
中的选项引入
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屋!
查看全文