DelimitedFiles

DelimitedFiles.readdlm ── メソッド

readdlm(source,
        delim::AbstractChar,
        T::Type,
        eol::AbstractChar;
        header=false,
        skipstart=0,
        skipblanks=true,
        use_mmap,
        quotes=true,
        dims,
        comments=false,
        comment_char='#')

ソース source から行列を読み込みます。col で区切られる各行は行を表し、各列は delim で区切られます。ソースに指定できるのはテキストファイル・ストリーム・バイト配列です。メモリマップトファイルを使うには、マップされた部分のバイト配列表現をソースとして渡してください。

T が数値型なら返り値はその型の配列となります。そのとき数値でない要素は T が浮動小数点数型のとき NaN として、それ以外のときゼロとして読み込まれます。数値型以外の便利な T の値には String, AbstractString, Any があります。

headertrue だとデータの最初の行がヘッダーとして読み込まれ、data_cells ではなくタプル (data_cells, header_cells) が返ります。

skipstart を指定すると、入力の先頭からそれだけの行が無視されます。

skipblankstrue だと、入力に含まれる空行が無視されます。

use_mmaptrue だと source が指定するファイルがメモリにマップされます。これにより性能が向上する可能性があります。デフォルトは Windows 以外では true です。Windows では、ファイルが大きく、一度だけ読み込まれ、書き込みが起きないときに true を指定するべきです。

quotestrue だと、要素を二重引用符 (") で囲むことで要素の区切り文字と改行文字を要素に含められるようになります。クオートされた要素に含まれる二重引用符は二重引用符でエスケープされる必要があります。dims に期待される行と列の個数 (ヘッダー含む) を表すタプルを指定すると、巨大なファイルを読むときに速度が向上する可能性があります。commentstrue だと、comment_char で始まる行および任意の行の comment_char 以降のテキストが無視されます。

julia> using DelimitedFiles

julia> x = [1; 2; 3; 4];

julia> y = [5; 6; 7; 8];

julia> open("delim_file.txt", "w") do io
           writedlm(io, [x y])
       end

julia> readdlm("delim_file.txt", '\t', Int, '\n')
4×2 Array{Int64,2}:
 1  5
 2  6
 3  7
 4  8

julia> rm("delim_file.txt")

DelimitedFiles.readdlm ── メソッド

readdlm(source, delim::AbstractChar, eol::AbstractChar; options...)

全てのデータが数値型なら、結果は数値配列となります。もしいずれか要素が数値としてパースできなければ、数値と文字列の混じった配列を返します。

DelimitedFiles.readdlm ── メソッド

readdlm(source, delim::AbstractChar, T::Type; options...)

行末を表す区切り文字は \n とみなされます。

julia> using DelimitedFiles

julia> x = [1; 2; 3; 4];

julia> y = [1.1; 2.2; 3.3; 4.4];

julia> open("delim_file.txt", "w") do io
           writedlm(io, [x y], ',')
       end;

julia> readdlm("delim_file.txt", ',', Float64)
4×2 Array{Float64,2}:
 1.0  1.1
 2.0  2.2
 3.0  3.3
 4.0  4.4

julia> rm("delim_file.txt")

DelimitedFiles.readdlm ── メソッド

readdlm(source, delim::AbstractChar; options...)

行末を表す区切り文字は \n とみなされます。全てのデータが数値型なら、結果は数値配列となります。もしいずれか要素が数値としてパースできなければ、数値と文字列の混じった配列を返します。

julia> using DelimitedFiles

julia> x = [1; 2; 3; 4];

julia> y = [1.1; 2.2; 3.3; 4.4];

julia> open("delim_file.txt", "w") do io
           writedlm(io, [x y], ',')
       end;

julia> readdlm("delim_file.txt", ',')
4×2 Array{Float64,2}:
 1.0  1.1
 2.0  2.2
 3.0  3.3
 4.0  4.4

julia> z = ["a"; "b"; "c"; "d"];

julia> open("delim_file.txt", "w") do io
           writedlm(io, [x z], ',')
       end;

julia> readdlm("delim_file.txt", ',')
4×2 Array{Any,2}:
 1  "a"
 2  "b"
 3  "c"
 4  "d"

julia> rm("delim_file.txt")

DelimitedFiles.readdlm ── メソッド

readdlm(source, T::Type; options...)

要素は一つ以上の空白で区切られるとみなされ、行末を表す区切り文字は \n とみなされます。

julia> using DelimitedFiles

julia> x = [1; 2; 3; 4];

julia> y = [5; 6; 7; 8];

julia> open("delim_file.txt", "w") do io
           writedlm(io, [x y])
       end;

julia> readdlm("delim_file.txt", Int64)
4×2 Array{Int64,2}:
 1  5
 2  6
 3  7
 4  8

julia> readdlm("delim_file.txt", Float64)
4×2 Array{Float64,2}:
 1.0  5.0
 2.0  6.0
 3.0  7.0
 4.0  8.0

julia> rm("delim_file.txt")

DelimitedFiles.readdlm ── メソッド

readdlm(source; options...)

要素は一つ以上の空白で区切られるとみなされ、行末を表す区切り文字は \n とみなされます。全てのデータが数値型なら、結果は数値配列となります。もしいずれか要素が数値としてパースできなければ、数値と文字列の混じった配列を返します。

julia> using DelimitedFiles

julia> x = [1; 2; 3; 4];

julia> y = ["a"; "b"; "c"; "d"];

julia> open("delim_file.txt", "w") do io
           writedlm(io, [x y])
       end;

julia> readdlm("delim_file.txt")
4×2 Array{Any,2}:
 1  "a"
 2  "b"
 3  "c"
 4  "d"

julia> rm("delim_file.txt")

DelimitedFiles.writedlm ── 関数

writedlm(f, A, delim='\t'; opts)

A をテキストとして f に書き込みます。要素は dlim で区切られます。A はベクトル・行列・反復できる行を持つコレクションのいずれかで、f はファイル名を表す文字列または IO ストリームです。delim のデフォルトはタブですが、印字可能な Julia オブジェクトであれば何でも構いません (通常は Char または AbstractString です)。

例えば同じ長さの二つのベクトル x, y を二列にタブで区切りながら出力したテキストを f に書き込むには、writedlm(f, [x y]) または writedlm(f, zip(x, y)) とします。

julia> using DelimitedFiles

julia> x = [1; 2; 3; 4];

julia> y = [5; 6; 7; 8];

julia> open("delim_file.txt", "w") do io
           writedlm(io, [x y])
       end

julia> readdlm("delim_file.txt", '\t', Int, '\n')
4×2 Array{Int64,2}:
 1  5
 2  6
 3  7
 4  8

julia> rm("delim_file.txt")

日本語 Julia 書籍 (Amazon アソシエイト)
1 から始める Julia プログラミング
Julia プログラミングクックブック―言語仕様からデータ分析、機械学習、数値計算まで
スタンフォード ベクトル・行列からはじめる最適化数学