问题描述
我通过 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)