Julia CSV.read 无法识别 "select" 关键字

Julia CSV.read not recognizing "select" keyword

我正在使用 Julia 中的 CSV 库读取一个 space 分隔的文件。

edgeList = CSV.read(
    joinpath(dataDirectory, "out.file"),
    types=[Int, Int],
    header=["node1", "node2"],
    skipto=3,
    select=[1,2]
)

这会产生以下错误:

MethodError: no method matching CSV.File(::String; types=DataType[Int64, Int64], header=["node1", "node2"], skipto=3, select=[1, 2])
Closest candidates are:
  CSV.File(::Any; header, normalizenames, datarow, skipto, footerskip, limit, transpose, comment, use_mmap, ignoreemptylines, missingstrings, missingstring, delim, ignorerepeated, quotechar, openquotechar, closequotechar, escapechar, dateformat, decimal, truestrings, falsestrings, type, types, typemap, categorical, pool, strict, silencewarnings, threaded, debug, parsingdebug, allowmissing) at /Users/n.jordanjameson/.julia/packages/CSV/4GOjG/src/CSV.jl:221 got unsupported keyword argument "select"

我正在使用 Julia v. 1.6.2。这是输出 versioninfo():

Julia Version 1.6.2
Commit 1b93d53fc4 (2021-07-14 15:36 UTC)
Platform Info:
  OS: macOS (x86_64-apple-darwin18.7.0)
  CPU: Intel(R) Core(TM) i7-5650U CPU @ 2.20GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, broadwell)

CSV的版本是0.10.4。此版本 CSV 的 wiki 位于:https://csv.juliadata.org/stable/reading.html#CSV.read,它有一个 select / drop 条目。

我试图读取的文件来自这里:http://konect.cc/networks/moreno_crime/(我正在使用的文件名为“out.moreno_crime_crime”)。前几行是:

% bip unweighted
% 1476 829 551
1 1 
1 2 
1 3 
1 4 
2 5 
2 6 
2 7 
2 8 
2 9 
2 10 

我得到的错误与你的不同,你能重启 Julia 并确定吗?

julia> CSV.read("/home/akako/Downloads/moreno_crime/out.moreno_crime_crime"; types=[Int, Int],
           header=["node1", "node2"],
           skipto=3,
           select=[1,2]
       )
ERROR: ArgumentError: provide a valid sink argument, like `using DataFrames; CSV.read(source, DataFrame)`
Stacktrace:
 [1] read(source::String, sink::Nothing; copycols::Bool, kwargs::Base.Pairs{Symbol, Any, NTuple{4, Symbol}, NamedTuple{(:types, :header, :skipto, :select), Tuple{Vector{DataType}, Vector{String}, Int64, Vector{Int64}}}})
   @ CSV ~/.julia/packages/CSV/jFiCn/src/CSV.jl:89
 [2] top-level scope
   @ REPL[8]:1
Stacktrace:

这个错误告诉你你不能 CSV.read 没有目标接收器,你可能想要使用 CSV.File

julia> CSV.File("/home/akako/Downloads/moreno_crime/out.moreno_crime_crime"; types=[Int, Int],
           header=["node1", "node2"],
           skipto=3,
           select=[1,2]
       )
┌ Warning: thread = 1 warning: parsed expected 2 columns, but didn't reach end of line around data row: 1. Parsing extra columns and widening final columnset
└ @ CSV ~/.julia/packages/CSV/jFiCn/src/file.jl:579
1476-element CSV.File:
 CSV.Row: (node1 = 1, node2 = 1, Column3 = missing)
 CSV.Row: (node1 = 1, node2 = 2, Column3 = missing)
 CSV.Row: (node1 = 1, node2 = 3, Column3 = missing)
 CSV.Row: (node1 = 1, node2 = 4, Column3 = missing)