朱莉娅:是否可以命名存储在数组中的数据帧

julia: Is it possible to name dataframes stored within an array

我在一个文件夹中存储了大约 500 个文件。这是其中的一小部分:

 "10.0.0.txt"
 "1.0.0.txt" 
 "10.1.2.txt"
 "10.1.3.txt"
 "10.1.4.txt"
 "10.1.5.txt"
 "10.2.1.txt"
 "10.2.3.txt"
 "10.2.4.txt"
 "10.2.5.txt"
 "10.3.1.txt"
 "10.3.2.txt"
 "10.3.4.txt"           
 "Y.3.1.txt" 
 "Y.3.2.txt" 
 "Y.3.4.txt" 
 "Y.3.5.txt" 
 "Y.4.1.txt" 
 "Y.4.2.txt" 
 "Y.4.3.txt" 
 "Y.4.5.txt" 
 "Y.5.1.txt" 
 "Y.5.2.txt" 
 "Y.5.3.txt" 
 "Y.5.4.txt" 

我想将它们全部读入 Julia 中并能够通过名字来称呼它们。目前我正在使用以下代码:

df = CSV.read.(filter(r"^", readdir()); delim=' '; header=["chrom", "pos", "ref", "alt"], )

这会将当前工作目录中的所有文件读取到一个数据帧数组中,这就是我想要的。但是,有没有办法命名每个数据框(或数组索引),以便我可以通过名称调用我需要的特定数据框?

最简单的方法是创建一个将名称映射到 DataFrame 的字典,例如(我已经稍微更改了正则表达式,因为我猜你想保留以 txt 结尾的名称):

Dict((f, CSV.read(f, delim=' ', header=["chrom", "pos", "ref", "alt"]))
     for f in filter(r"txt$", readdir()))