Dataframe Julia v1.1.1中不支持findin()函数

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

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: 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。