使用相应行

时间:2017-07-28 19:35:35

标签: r database

我正在使用Kaggle数据集练习我的R编程技巧,我可以使用一些帮助。我正在研究Ghosts,Ghouls和Goblins数据集,目标是根据一组描述性统计数据预测每行代表哪种类型的怪物。我使用训练数据集训练了多项逻辑回归模型,以获得3种类型中每种类型的概率值,现在我只想将怪物的名称放在基于测试数据集的每行的最后一个单元格中。该行中3列的最大概率。这是我的表头:predProbs Table

我目前所尝试的似乎是使用相同的值填充类型列中的每个单元格。如何计算列中的最大概率" Ghost"," Ghoul"和" Goblin",获取包含最大值的列的列名,然后使用名称填充每一行(列名:类型)中的最后一个单元格?我想对测试数据集中的每一行执行此操作。这就是我目前正在尝试做的事情,然后只使用名为predProbs的整个列表cbind 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

1 个答案:

答案 0 :(得分:0)

你应该想到这样的事情:

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