1

I try to read a text file in julia but I cannot give any type while reading it gives an error;

data = readdlm("data.txt",'\t', Float64)

at row 1, column 1 : ErrorException("file entry \" 0.00632 18.00 2.310 0 0.5380 6.5750 65.20 4.0900 1 296.0 15.30 396.90 4.98 24.00\" cannot be converted to Float64")

If I dont use Float64, the data type is Array{Any,2}. this result returns but I have 14 different columns in the data.

 " 0.27957   0.00   9.690  0  0.5850  5.9260  42.60  2.3817   6  391.0  19.20 396.90  13.59  24.50"
 " 0.17899   0.00   9.690  0  0.5850  5.6700  28.80  2.7986   6  391.0  19.20 393.29  17.60  23.10"
 " 0.28960   0.00   9.690  0  0.5850  5.3900  72.90  2.7986   6  391.0  19.20 396.90  21.14  19.70"
 " 0.26838   0.00   9.690  0  0.5850  5.7940  70.60  2.8927   6  391.0  19.20 396.90  14.10  18.30"
 " 0.23912   0.00   9.690  0  0.5850  6.0190  65.30  2.4091   6  391.0  19.20 396.90  12.92  21.20"

1 Answers1

2

I recommend using the CSV library to parse delimited files. It has features, such as handling repeated delimiters, which will probably deal with your input file.

julia> using Pkg

julia> Pkg.add("CSV")

julia> import CSV

julia> Array(CSV.read("data.txt"; delim=' ', ignorerepeated=true, type=Float64))
4×14 Array{Float64,2}:
 0.17899  0.0  9.69  0.0  0.585  5.67   28.8  2.7986  6.0  391.0  19.2  393.29  17.6   23.1
 0.2896   0.0  9.69  0.0  0.585  5.39   72.9  2.7986  6.0  391.0  19.2  396.9   21.14  19.7
 0.26838  0.0  9.69  0.0  0.585  5.794  70.6  2.8927  6.0  391.0  19.2  396.9   14.1   18.3
 0.23912  0.0  9.69  0.0  0.585  6.019  65.3  2.4091  6.0  391.0  19.2  396.9   12.92  21.2


David Sainez
  • 6,446
  • 1
  • 22
  • 45