2
我有一些數據(來自R課程分配,但這並不重要),我想使用分裂應用組合策略,但我有一些問題。數據在DataFrame上,稱爲結果,每行代表醫院。每列都有關於該醫院的信息,例如姓名,地點,費率等。Julia DataFrames:分裂應用組合策略的問題
我的目標是獲得每個州具有最低「心臟病發病率死亡率」的醫院。
我用一些策略玩耍,並得到使用by
功能相關的問題:
best_heart_rate(df) = sort(df, cols = :Mortality)[end,:]
best_hospitals = by(hospitals, :State, best_heart_rate)
當時的想法是分裂hospitals
數據幀由國家,排序分別由死亡率SubDataFrames,拿最低的國家之一,並在新的數據幀
結合線但是,當我使用這個策略,我得到:
ERROR: no method nrow(SubDataFrame{Array{Int64,1}})
in sort at /home/paulo/.julia/v0.3/DataFrames/src/dataframe/sort.jl:311
in sort at /home/paulo/.julia/v0.3/DataFrames/src/dataframe/sort.jl:296
in f at none:1
in based_on at /home/paulo/.julia/v0.3/DataFrames/src/groupeddataframe/grouping.jl:144
in by at /home/paulo/.julia/v0.3/DataFrames/src/groupeddataframe/grouping.jl:202
我想nrow
函數沒有爲SubDataFrames實現,所以我得到了一個錯誤。所以我用了一個很難看的代碼:
best_heart_rate(df) = (df[sortperm(df[:,:Mortality] , rev=true), :])[1,:]
best_hospitals = by(hospitals, :State, best_heart_rate)
似乎工作。但是現在有一個NA
問題:我如何從Mortality
列中刪除NA
的SubDataFrame中的行?有沒有更好的策略來實現我的目標?
謝謝!這正是我想要的,但是我的DataFrame在'death'行上有'NA'。函數'indmax()'還沒有爲DataFrames實現,所以我仍然得到一個錯誤。 – prcastro
您可以使用'complete_cases'來僅選擇數據框的完整行。我編輯了迴應。數據框應該真的有一個「dropna」。 –