我有一个函数,当我运行它时,它会在数据框中返回一组值。有点像:
(values) = function(data)
但是我在
中运行此功能[例如见这里] [1]
我在一个循环中运行这个函数,这样每次运行时,我都会得到一组新的值。
for x = 1:5
(values) = function(data[data[:sub].==[x], :])
end
函数运行后,我想把返回的值放回到具有完全相同列标题的“主”数据框中,并编译每次循环迭代时返回的值。
这看起来非常棘手。我尝试使用append!
,如下所述:
https://discourse.julialang.org/t/adding-a-new-row-to-a-dataframe/1331/3
但这不起作用。例如,如果我运行以下命令
(values_1) = function(data[data[:sub].==[1], :])
(values_2) = function(data[data[:sub].==[2], :])
append(values_1, values_2)
此操作失败,并显示以下错误消息:
MethodError: no method matching append!(::Array{Float64,2}, ::Array{Float64,2})
Closest candidates are:
append!(::PyCall.PyObject, ::Any) at /Users/neil/.julia/v0.5/PyCall/src/PyCall.jl:836
append!(::Array{T,1}, ::Any) at collections.jl:21
append!{T}(::PyCall.PyVector{T}, ::Any) at /Users/neil/.julia/v0.5/PyCall/src/conversions.jl:278
in append!(::DataFrames.DataFrame, ::DataFrames.DataFrame) at /Users/neil/.julia/v0.5/DataFrames/src/dataframe/dataframe.jl:791
in include_string(::String, ::String) at ./loading.jl:441
in include_string(::String, ::String) at /Applications/Julia-0.5.app/Contents/Resources/julia/lib/julia/sys.dylib:?
请注意,每次运行时,函数都会正确返回数据框,这只是导致问题的值的连接。
欣赏任何指针。 n
答案 0 :(得分:2)
您正在寻找vcat
,例如vcat(values_1, values_2)
。不过,可能有一种更好的方法可以做你正在做的事情,但如果没有一个MWE'就很难给出具体的建议,即我们可以粘贴到终端的例子,运行并重写。