R 将行名称我的索引列添加到预测的模型结果中

问题描述

我通过 glmulti 运行我的训练数据以获得最佳模型拟合,并且需要运行测试数据以获得预测结果。我还需要包含每条记录的唯一 ID,以便我可以匹配在下游流程中使用的结果。我可以得到结果,但不知道如何从输入数据集中合并字母数字 ID。

运行并打印预测

newnames <- c(
  'AADT','SPEEDLIM','SpeedTrans')
new_all <- bind_rows(dat,test,absence_subset)

#Standardize variable ranges
new_all[,newnames] <- new_all[,newnames] %>% 
  mutate_if(is.numeric,scale)

for (i in 1:ncol(new_all)) {
  if (is.numeric(new_all[,i])) {
    new_all[,i] <- c(new_all[,i])
  }
}

newdata <- new_all %>%
  select(all_of(newnames)) %>%
  droplevels()
newdf <- data.frame(newdata)
pred <- predict(m.glob2,newdf,type="response",full=T,)

newdata$fit <- pred
newdata$prob <- exp(pred)/(1+exp(pred))
outfile <- paste0(getwd(),"/Results/Predict_",animal,"_",area,".csv")
write.table(newdata,file = outfile,sep = ",",row.names = F,col.names = T,append = F)

newnames 中的三个变量是模型中用到的变量。如何将“Event_ID”字段合并到结果表中?

解决方法

太简单了,不好意思打扰了。我认为这个项目正在导致倦怠。我只是在模型运行后将字段名称添加回文件中。在下面发布以防其他人正在寻找快速答案。

newdata$fit <- pred
newdata$prob <- exp(pred)/(1+exp(pred))
newdata$Event_ID <- new_all$Event_ID
outfile <- paste0(getwd(),"/Results/Predict_",animal,"_",area,".csv")
write.table(newdata,file = outfile,sep = ",",row.names = T,col.names = NA,append = F)