我正在寻找一种方法在Julia中迭代地填充数据框。在Julia中使用for循环迭代填充数据框
我有一个创建沿线多点的工作职能:
#function to draw QMD lines
using DataFrames
function make_lines(qmd)
BA=Float64[]
TPA=Float64[]
QMD=Int[]
for i in stk_percent
tpa= 1*(i*10)/(a[1]+a[2]*(-0.259+0.973*qmd)+a[3]*qmd^2)
ba=pi*(qmd/24)^2*tpa
push!(TPA,tpa)
push!(BA,ba)
push!(QMD,qmd)
end
return DataFrame(TPA=TPA,BA=BA,QMD=QMD)
end
我试图完成的下一步是使用与预先定义的一组投入运行在一个循环中make_lines功能所有的输出在一个单一的数据帧,但我不能得到它的工作。
dia = [7, 8, 10, 12, 14, 16, 18, 20, 22]
# can't get for loop to append all the data frames?
for i in dia
df=DataFrame(TPA=Float64[],BA=Float64[],QMD=Int[])
append!(df,make_lines(i))
return df
end
起初我以为这是我如何使用Dataframes,我从来没有使用推!等过,但我得到这个代码块的工作
#this works to combine dataframe
test=make_lines(22)
test2=make_lines(8)
test[:]
append!(test,test2)
那么,为什么当我运行for循环,我结束了只有它生产的最后数据帧?
我误解了什么吗?从我读过的Julia中的数据框与R中的数据框不同,但我无法围绕如何实现这个工作。