R中的函数返回值

用户名
trainer <- function(training, testing){    
  trControl <- trainControl(method="cv", number=5)
  modelFit <- train(training$classe ~ ., method="rf", preProcess="pca", 
                    trControl=trControl, data=training)
  confMatrix <- confusionMatrix(testing$classe, predict(modelFit,testing))

  output <- list(modelFit, confMatrix)
  return(output)
}

返回值应该是一个模型,modelFit不是列表,但是当我检查时class(output[1]),它报告为列表。似乎是以某种方式将模型文件转换为列表。如何保留原始数据类型而不将其转换为列表,因为我需要在返回中访问模型文件。

弗里克先生

如上所示,当output是列表并且[ ]用于提取元素时,总是会返回列表(带有指定索引的一个或多个元素)。但是,在使用时,[[ ]]您将在特定位置提取元素,并且该元素可能具有不同的类。

您可以sapply(output, class)查看给定列表中所有项目的类。

因此,您的函数似乎运行良好,只需确保使用output<-trainer(...); output[[1]]来提取模型即可。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章