过滤多个条件时,Julia dataframes方法错误不明确

过滤多个条件时,Julia dataframes方法错误不明确,dataframe,julia,Dataframe,Julia,我想在多个条件下过滤数据帧,并在这些条件为真时赋值, 我已经编写了以下代码,但是我得到了以下错误error:MethodError:convert(::Type{Union{},::String)不明确。 #Make a new column c2 with missing values df[:,:c2] .= missing #Filter and assign values to column c2 df[(.!ismissing.(df.preconV) .& .!ismiss

我想在多个条件下过滤数据帧,并在这些条件为真时赋值, 我已经编写了以下代码,但是我得到了以下错误
error:MethodError:convert(::Type{Union{},::String)不明确。

#Make a new column c2 with missing values
df[:,:c2] .= missing

#Filter and assign values to column c2
df[(.!ismissing.(df.preconV) .& .!ismissing.(df.delayV) .& ismissing.(df.budgetV) .& .!ismissing.(df.improvDeclV)), :c2 ] .= "A1"
但是,当我取出
=“A1”
部分时,数据帧会被正确过滤。就在赋值时,错误突然出现

#Just filtering works fine!
df[(.!ismissing.(df.preconV) .& .!ismissing.(df.delayV) .& ismissing.(df.budgetV) .& .!ismissing.(df.improvDeclV)), :c2 ]
#out > 65-element Array{Missing, 1}
我也知道,可以使用
ifelse
命令来实现相同的结果,但在这种情况下,它不会起作用,因为这只是我在这里显示的一行代码,但我还有许多其他代码行,用于其他组合(preconV、delayV…),否则语句将覆盖上一个语句中的值。 我已经附上了一个图片的一部分数据框得到一个想法(只有4列显示,因为数据框太大)

你知道是什么导致了这个模棱两可的错误吗


解决了这个问题,这是一个数据类型错误


创建新列时需要将此行(
df[:,:c2].=missings
)更改为
df[:,:c2]=Array{String}(unde,nrow(df))

,我认为最好编写
df.c2=missings(String,nrow(df))
。 首先,对我来说,它似乎读得更清楚。第二,我的建议与
df[:,:c2]=…
(在这种情况下,您不需要复制)相反,不需要复制