Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何减小闪亮应用程序保存的线性模型的大小?_R_Regression - Fatal编程技术网

R 如何减小闪亮应用程序保存的线性模型的大小?

R 如何减小闪亮应用程序保存的线性模型的大小?,r,regression,R,Regression,我正在尝试创建一个闪亮的应用程序,允许我拟合线性模型,显示有关它们的信息,然后保存它们 我面临一个问题:当我保存一个模型时,它占据了很大的位置。下面是一个简化的代码: library(shiny) library(ggplot2) ui <- shinyUI(fluidPage( titlePanel("Save linear Model"), sidebarLayout( sidebarPanel( actionButton("save",

我正在尝试创建一个闪亮的应用程序,允许我拟合线性模型,显示有关它们的信息,然后保存它们

我面临一个问题:当我保存一个模型时,它占据了很大的位置。下面是一个简化的代码:

library(shiny)
library(ggplot2)

ui <- shinyUI(fluidPage(
    titlePanel("Save linear Model"),

    sidebarLayout(
      sidebarPanel(
        actionButton("save","SAVE !")
      ),

      mainPanel(
       textOutput("saved")
      )
    )
))


server <- shinyServer(function(input, output) {

  load("donnees/new/V283/V283_complete.RData")

  observeEvent(input$save,{

    lm.fit<-lm(price~.,data=diamonds)
    save(lm.fit, file="question-x-validated/my-model.RData")
    output$saved<-renderText("Saved")

  })

})

shinyApp(ui = ui, server = server)
是275.1MB。如果我在加载lm.fit后保存它,我的rdata文件是36.9Mb。如果我保存lm.fit而不加载它,我的文件是13Mb。 如果我直接从R保存lm.fit(而不使用我的闪亮应用程序),则该文件为 657MB

如中所述,这可能是一个环境问题。但在我看来,我正在使用shiny这一事实增加了一些困难,因为上面链接建议的技术在我的案例中都不起作用

我还尝试使用saveRDS函数。并替换为:

lm.fit<-lm(price~.,data=diamonds)
它会改变文件大小,但它的大小永远不会小于6.57Mb

就像在我的真实代码中一样,我导入了非常大的数据集,我的真实模型变得非常巨大(超过500Mb),这使得我闪亮的应用程序在加载/保存这些模型时速度非常慢

我非常感谢你能提供的任何帮助

编辑:

我的问题似乎来自于我的模型中的“术语”元素,好像我是这样做的:

lm.fit<-lm.fit[1:11]
不起作用

还有,有趣的是:

lm.fit$terms查看有关减少glm/lm对象上脂肪大小的一些方法/信息


投票迁移到SO。请参阅帮助中心中有关软件特定问题的建议。从本质上说,CV并不是为代码提供建议或调试代码。这似乎主要是一个编码问题,而不是一个统计问题——看看我们的,看看交叉验证的主题是什么。在我看来,您提供了足够的信息,可以在StackOverflow获得答案;最有可能的结果是,这将被迁移到那里,因此您不需要自己交叉发布。我编辑了我的帖子:我的问题似乎来自terms元素,但使用您帖子中建议的
attr(lm.fit$terms,“.Environment”)=c()
,不起作用。是否为您运行?我可以毫无问题地减少
lm
glm
对象。
attr(lm.fit$terms,“.Environment”)=c()
行成功运行。您的模型在运行
strip\u glm
之前和之后的
object.size
是什么。节省了这么多空间。非常感谢你。
assign("lm.fit",lm(price~.,data=diamonds),envir=globalenv())
lm.fit<-lm.fit[1:11]
attr(lm.fit$terms,".Environment") = c()