Dataframe 如何在julia中使用函数readtable传递列名? 使用数据帧 标签=[“数据”、“节奏”、“RAh”、“RAm”、“RAs”、“DEh”、“DEm”、“DEs”] df=readtable(“mars.dat”,分隔符=“”,标题=false,名称=label)

Dataframe 如何在julia中使用函数readtable传递列名? 使用数据帧 标签=[“数据”、“节奏”、“RAh”、“RAm”、“RAs”、“DEh”、“DEm”、“DEs”] df=readtable(“mars.dat”,分隔符=“”,标题=false,名称=label),dataframe,julia,Dataframe,Julia,我得到下一个错误 MethodError: no method matching DataFrames.ParseOptions(::Bool, ::Char, ::Array{Char,1}, ::Char, ::Array{String,1}, ::Array{String,1}, ::Array{String,1}, ::Bool, ::Array{String,1}, ::Array{Any,1}, ::Bool, ::Char, ::Bool, ::Int64, ::Array{Int

我得到下一个错误

MethodError: no method matching DataFrames.ParseOptions(::Bool, ::Char, ::Array{Char,1}, ::Char, ::Array{String,1}, ::Array{String,1}, ::Array{String,1}, ::Bool, ::Array{String,1}, ::Array{Any,1}, ::Bool, ::Char, ::Bool, ::Int64, ::Array{Int64,1}, ::Bool, ::Symbol, ::Bool, ::Bool)
Closest candidates are:
  DataFrames.ParseOptions(::Bool, ::Char, ::Array{Char,1}, ::Char, ::Array{S<:String,1}, ::Array{T<:String,1}, ::Array{T<:String,1}, ::Bool, ::Array{Symbol,1}, ::Array{T,1} where T, ::Bool, ::Char, ::Bool, ::Int64, ::AbstractArray{Int64,1}, ::Bool, ::Symbol, ::Bool, ::Bool) where {S<:String, T<:String} at /home/juser/.julia/v0.6/DataFrames/src/dataframe/io.jl:9

Stacktrace:
 [1] #readtable#84(::Bool, ::Char, ::Array{Char,1}, ::Char, ::Array{String,1}, ::Array{String,1}, ::Array{String,1}, ::Bool, ::Int64, ::Array{String,1}, ::Array{Any,1}, ::Bool, ::Char, ::Bool, ::Int64, ::Array{Int64,1}, ::Bool, ::Symbol, ::Bool, ::Bool, ::DataFrames.#readtable, ::IOStream, ::Int64) at /home/juser/.julia/v0.6/DataFrames/src/dataframe/io.jl:843
 [2] (::DataFrames.#kw##readtable)(::Array{Any,1}, ::DataFrames.#readtable, ::IOStream, ::Int64) at ./<missing>:0
 [3] #readtable#85(::Bool, ::Char, ::Array{Char,1}, ::Char, ::Array{String,1}, ::Array{String,1}, ::Array{String,1}, ::Bool, ::Int64, ::Array{String,1}, ::Array{Any,1}, ::Bool, ::Char, ::Bool, ::Int64, ::Array{Int64,1}, ::Bool, ::Symbol, ::Bool, ::Bool, ::DataFrames.#readtable, ::String) at /home/juser/.julia/v0.6/DataFrames/src/dataframe/io.jl:945
 [4] (::DataFrames.#kw##readtable)(::Array{Any,1}, ::DataFrames.#readtable, ::String) at ./<missing>:0
MethodError:没有与数据帧匹配的方法。ParseOptions(::Bool,::Char,::Array{Char,1},::Char,::Array{String,1},::Array{String,1},::Array{String,1},::Array{Any 1},::Bool,::Bool,::Bool,::Int64,::Array{Int64,1},::Bool,::Symbol,::Bool,::Bool)
最接近的候选人是:

DataFrames.ParseOptions(::Bool,::Char,::Array{Char,1},::Char,::Array{S从readtable的文档中,它似乎需要符号向量,而不是字符串向量:

名称::Vector{Symbol}–使用此数组中的值作为所有列的名称,而不是或代替文件头中的名称

您可以通过列表理解将字符串向量转换为符号向量(假设字符串是有效名称),例如:

labelSymbols = [Symbol(i) for i in label];
并将其传递给您的名称参数



免责声明:由于我没有访问
mars.dat
文件的权限,因此我没有测试此功能是否有效。我只是在阅读文档并指出最可能出现的问题。

很抱歉在这里说了一句恼人的话,但格式是
labelSymbols=Symbol。(标签)
在Julia?@MichaelK.Borregaard-hah中没有更多的表意文字,这一点很好。我不认为广播语法比列表理解语法本身更地道,但无可否认,在我的头脑中,我认为这在语义上是“从每个字符串元素生成一个符号”,而不是“从元素角度应用符号构造函数”;我甚至没有想到这是一个广播业务开始:p