2017-07-28 65 views
0

我正在使用Kaggle數據集練習我的R編程技巧,我可以使用一些幫助。我正在研究Ghosts,Ghouls和Goblins數據集,目標是根據一組描述性統計數據預測每行代表哪種類型的怪物。我使用訓練數據集訓練了一個多項式邏輯迴歸模型,以獲得這三種類型中的每一種的概率值,現在我只想將怪物的名字放在測試數據集中每行的最後一個單元格中該行中3列的最大概率。這裏是我的表頭:predProbs Table用相應行中的最大值列名填充單元格

我目前的嘗試似乎填充類型列中的每個單元格具有相同的值。如何計算列「Ghost」,「Ghoul」和「Goblin」中的最大概率,獲取包含最大值的列的列名,然後填充每行中的最後一個單元格(列名稱:type)名字?我希望爲測試數據集中的每一行都做到這一點。這是我目前正在嘗試做的,然後只是用名爲predProbs的整個列表綁定typesList。

for (i in nrow(predProbs)) {typesList = append(typesList, which.max(apply(predProbs[i,7:9], MARGIN = 2, max)))} 

但是,這似乎並沒有創造我需要的載體。有什麼想法嗎? 這類似於這個帖子:find max value in a row and update new column with the max column name 但不幸的是,我不是在SQL很流利尚未所以我不能將它翻譯成R.

任何幫助將不勝感激。謝謝!

-Wes

+0

請以堆棧溢出提供樣本數據和預期的結果 – HubertL

+0

歡迎您!請通過[tour](http://stackoverflow.com/tour),[幫助中心](http://stackoverflow.com/help)和[如何提出一個好問題](http:// stackoverflow.com/help/how-to-ask)章節,瞭解本網站的工作原理,並幫助您改善當前和未來的問題,從而幫助您獲得更好的答案。 –

+0

謝謝你的建議。我上次發佈這個很匆忙。我在帖子中增加了一些額外的細節。希望這可以幫助。 –

回答

0

你應該想到的是這樣的:

t(apply(predProbs,1,function(i)append(i,names(predProbs)[which.max(i)],length(i)))) 
相關問題