【发布时间】:2026-01-15 11:45:01
【问题描述】:
考虑到泰坦尼克号数据集,我创建了几个关于生存的预测,我想基于投票系统创建最终的生存,这意味着如果大多数预测规定乘客幸存,最终结果为 1,否则为 0
> str(temp)
'data.frame': 179 obs. of 3 variables:
$ predictions_ldm : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
$ predictions_qda : Factor w/ 2 levels "0","1": 1 1 1 1 2 1 1 1 1 1 ...
$ predictions_glm_age: Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
> temp[c(4,5,12),]
predictions_ldm predictions_qda predictions_glm_age
4 0 0 0
5 0 1 0
12 1 1 0
我希望结果是
> temp[c(4,5,12),]
predictions_ldm predictions_qda predictions_glm_age Survived
4 0 0 0 0
5 0 1 0 0
12 1 1 0 1
我怎样才能做到这一点?
【问题讨论】:
-
你可以得到rowMeans,然后如果它们大于0.5就把1,否则0?喜欢
ifelse(rowMeans(temp) > 0.5, 1, 0)? -
问题是 temp 是因子的数据框
-
我找到了一个解决方案,但我认为这不是最佳解决方案
votedSurvival <- as.factor(as.numeric(apply(temp,1,FUN = function(z) {mean(as.numeric(z))>0.5}))) -
很好的解决办法,另外一个类似的方法是在函数中使用
apply(temp, 1, function(x) names(sort(-table(x[1])))),不会转成数字
标签: r prediction