2017-07-28 63 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)))) 
相关问题