R中函数的输出,带有列表(lda model, ggplot, dataframe)



我正在努力如何在R中获得一个函数的输出,我正在创建一个元素列表。显然这很简单,然而,我不能深入研究。我在SO中检查了不同的问题,但没有结果。这可能是一个简单的问题,可能我打印错了一些行。

我创建的函数的输出有三个元素,我认为它们应该包含在一个列表中:

  • 线性判别分析模型(lda)。
  • dataframe
  • ggplot图像

这是我正在使用的函数的版本:

fun <- function(data, tooth_type = c("m1", "m2", "m3"), position = c("U", "L")) {
model <- lda(Species ~ MD + BL, data = data) 
# extract the information of the tooth we are working from the Omo database
tooth <- omo_numeric_mdbl[omo_numeric_mdbl$Tooth == tooth_type & omo_numeric_mdbl$Position == position, ]
tooth <- tooth[complete.cases(tooth[, 31:32]), ]
predictions <- model %>%
predict(tooth)
pred <- as.data.frame(predictions$posterior)*100
# plot
lda.data <- cbind(data, predict(model)$x)
ggplot_fun <- ggplot(lda.data, aes(LD1, LD2)) +
geom_point(aes(color = Species))
list(model, pred, ggplot_fun)
}
如您所见,在函数中有三个我想存储的对象:
  • pred:这是数据帧
  • model:这是lda信息
  • ggplot_fun:这是ggplot图像

我试着:

  • as.list(model, pred, ggplot_fun)->不成功的
  • list(model, pred, ggplot_fun)->不成功的
  • x <- as.list(model, pred, ggplot_fun); return(x)->不成功的
  • x <- list(model, pred, ggplot_fun); return(x)->不成功的

最后,我想要的是:

x <- fun(data, "m3", "L") # for example
x$pred       # show the dataframe (and display as kable, if required)
x$model      # show the lda model, and to get all the details inside as x$model$posterior
x$ggplot_fun # display the ggplot function

我终于解决了问题。为了给其他有同样问题的人提供答案,我更改了示例的最后一行:

list(model, pred, ggplot_fun)

By this

list(LDA = model, Prediction = pred, Ggplot = ggplot_fun)

基本上我给每个元素命名了。

相关内容

  • 没有找到相关文章

最新更新