我正在尋找一種方法在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中的數據框不同,但我無法圍繞如何實現這個工作。