首页 > 解决方案 > 检索带有标签/级别的因子作为具有最大值的 colname。水平下降问题

问题描述

我刚刚得到了一个多项逻辑模型的预测,它从我的数据中给出了我的类(列)的概率。

我得到了这样的东西。

在此处输入图像描述

问题是我创建了一个函数来检索具有最大值的列的名称,将其存储在一个向量中,并使用与我的列同名的标签对其进行分解。但是,因为我没有获得任何值作为第五列,所以它不起作用。

max_name_col <- function(df, vec =c(1:5)) {

  
  etiq = colnames(df[,vec])
  return (factor((colnames(df[,vec])[apply(df[,vec],1,which.max)]), labels=etiq))
}

如果我不使用它并尝试自行分解它,级别会发生变化,并且由于我丢失了第三列(每个概率都非常低),所以我无法将它与原始类进行比较。(因为我的第 4 课确实是原始数据中的第 5 课)。

我怎么能改变我的函数,让它工作,鄙视我的列中没有“下降”的max_value?

标签: rstringvector

解决方案


好的,我解决了。只需添加级别,使其与列的名称一致。

max_name_col <- function(df, vec =c(1:5)) {


  etiq = colnames(df[,vec])
  return (factor((colnames(df[,vec])[apply(df[,vec],1,which.max)]), levels=etiq, labels=etiq))
}


推荐阅读