Dataframe Julia v1.1.1中不支持findin()函数
findin(a,b)是juliav0.6.2中支持的函数。然而,在Julia 1.0中,它被替换为另一个函数findall((in)(b),a)。以下代码在Julia v0.6.2中运行Dataframe Julia v1.1.1中不支持findin()函数,dataframe,julia,Dataframe,Julia,findin(a,b)是juliav0.6.2中支持的函数。然而,在Julia 1.0中,它被替换为另一个函数findall((in)(b),a)。以下代码在Julia v0.6.2中运行 df_temp = df[findin(df[:pmid],pmids),:] 但是,当我尝试在Julia 1.1.1中使用findall((in)b,a)函数时,如下所示 df_temp = df[findall((in)(pmids),df[:pmid]),:] 我收到了以下错误 ERROR: Loa
df_temp = df[findin(df[:pmid],pmids),:]
但是,当我尝试在Julia 1.1.1中使用findall((in)b,a)函数时,如下所示
df_temp = df[findall((in)(pmids),df[:pmid]),:]
我收到了以下错误
ERROR: LoadError: MethodError: no method matching parse(::SubString{String}) Closest candidates are:
parse(!Matched::Type{DecFP.Dec32}, !Matched::AbstractString) at C:\Users\Thor\.julia\packages\DecFP\3jJW7\src\DecFP.jl:224
parse(!Matched::Type{LibGit2.GitCredential}, !Matched::AbstractString) at C:\cygwin\home\Administrator\buildbot\worker\package_win32\build\usr\share\julia\stdlib\v1.1\LibGit2\src\gitcredential.jl:73
parse(!Matched::Type{LibGit2.GitCredentialHelper}, !Matched::AbstractString) at C:\cygwin\home\Administrator\buildbot\worker\package_win32\build\usr\share\julia\stdlib\v1.1\LibGit2\src\gitcredential.jl:163
Stacktrace:
[1] _broadcast_getindex_evalf at .\broadcast.jl:578 [inlined]
[2] _broadcast_getindex at .\broadcast.jl:551 [inlined]
[3] getindex at .\broadcast.jl:511 [inlined]
[4] copy at .\broadcast.jl:787 [inlined]
[5] materialize(::Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{1},Nothing,typeof(parse),Tuple{Array{SubString{String},1}}}) at .\broadcast.jl:753
[6] get_features_labels(::DataFrame, ::Array{Int32,1}) at C:\Users\Thor\Documents\MachineLearning\Work\classifiers.jl:208
[7] test_analysis_skl(::DataFrame, ::Array{Int32,1}, ::Array{Int32,1}, ::Symbol, ::Dict{Symbol,Any}) at C:\Users\Thor\Documents\Machine Learning\Work\crossval_and_stats.jl:24
[8] main() at C:\Users\Thor\Documents\MachineLearning\Work\machine_learning_regsampling.jl:79
[9] top-level scope at none:0
[10] include at .\boot.jl:326 [inlined]
[11] include_relative(::Module, ::String) at .\loading.jl:1038
[12] include(::Module, ::String) at .\sysimg.jl:29
[13] exec_options(::Base.JLOptions) at .\client.jl:267
[14] _start() at .\client.jl:436 in expression starting at C:\Users\Thor\Documents\MachineLearning\Work\machine_learning_regsampling.jl:181
我想知道您是否知道这是为什么?您是否可以发布一个可复制的示例,因为错误消息似乎表明除了
findall
函数之外还有其他问题。您也可以只在(pmid)中编写,建议您编写df.pmid
而不是df[:pmid]
,因为后者将来可能会被弃用。该堆栈跟踪看起来不像是来自findin
的问题。问题出在您在C:\Users\Thor\Documents\MachineLearning\Work\classifiers.jl:208
上编写的广播表达式中,该表达式可能调用parse
。您可能想改用Meta.parse
。从0.6升级代码时,请使用Julia 0.7来识别这些更改。@BogumiłKamiński抱歉,我发布了错误的错误。我将把df[:pmid]更新为df.pmid。为什么不改为使用filter
<代码>df_temp=过滤器(pmid中的x->x.pmid,df)
?或者使用迭代器。过滤器
以避免分配新的df。您是否可以发布一个可复制的示例,因为错误消息似乎表明除findall
函数以外的其他问题。您也可以只在(pmid)中编写,建议您编写df.pmid
而不是df[:pmid]
,因为后者将来可能会被弃用。该堆栈跟踪看起来不像是来自findin
的问题。问题出在您在C:\Users\Thor\Documents\MachineLearning\Work\classifiers.jl:208
上编写的广播表达式中,该表达式可能调用parse
。您可能想改用Meta.parse
。从0.6升级代码时,请使用Julia 0.7来识别这些更改。@BogumiłKamiński抱歉,我发布了错误的错误。我将把df[:pmid]更新为df.pmid。为什么不改为使用filter
<代码>df_temp=过滤器(pmid中的x->x.pmid,df)
?或者使用迭代器。筛选以避免分配新的df。