如何正确地将拟合的线性模型导出到rds文件并在以后重新创建?

如何正确地将拟合的线性模型导出到rds文件并在以后重新创建?,r,powerbi,binaryfiles,R,Powerbi,Binaryfiles,与此类似(但用于rds而不是dput) 比如说,出于某些原因,你必须: 使用saveRDS(而不是dput) 将rds文件加载到程序中(作为二进制文件) 将该二进制文件的内容作为字符串返回R 您将使用什么功能在R中重新构建模型?您所说的“在R中重新构建模型”是什么意思还不是很清楚。我假设您希望存储线性模型的输出,然后稍后(可能是从新的R终端)重新读取对象 以下是一个可复制的最小示例: # Fit a linear model fit <- lm(mpg ~ disp, data = mtc

与此类似(但用于rds而不是dput)

比如说,出于某些原因,你必须:

  • 使用saveRDS(而不是dput)
  • 将rds文件加载到程序中(作为二进制文件)
  • 将该二进制文件的内容作为字符串返回R

  • 您将使用什么功能在R中重新构建模型?

    您所说的“在R中重新构建模型”是什么意思还不是很清楚。我假设您希望存储线性模型的输出,然后稍后(可能是从新的R终端)重新读取对象

    以下是一个可复制的最小示例:

    # Fit a linear model
    fit <- lm(mpg ~ disp, data = mtcars)
    
    # Save as RDS
    saveRDS(fit, file = "my_fit.rds")
    
    # Clean up the workspace (or quit R)
    rm(fit)
    
    fit <- readRDS("my_fit.rds")
    fit
    #
    #Call:
    #lm(formula = mpg ~ disp, data = mtcars)
    #
    #Coefficients:
    #(Intercept)         disp
    #   29.59985     -0.04122
    
    #拟合线性模型
    
    拟合不太清楚你所说的“在R中重建模型”是什么意思。我假设您希望存储线性模型的输出,然后稍后(可能是从新的R终端)重新读取对象

    以下是一个可复制的最小示例:

    # Fit a linear model
    fit <- lm(mpg ~ disp, data = mtcars)
    
    # Save as RDS
    saveRDS(fit, file = "my_fit.rds")
    
    # Clean up the workspace (or quit R)
    rm(fit)
    
    fit <- readRDS("my_fit.rds")
    fit
    #
    #Call:
    #lm(formula = mpg ~ disp, data = mtcars)
    #
    #Coefficients:
    #(Intercept)         disp
    #   29.59985     -0.04122
    
    #拟合线性模型
    
    我不知道你说的(3)是什么意思。保存到RDS并读回(1/2)应该可以很好地工作,以便能够在后续会话中操作模型(前提是它完全使用
    lm(y~x,data=dat)
    符号构建)。不清楚“重新构建模型”是什么意思。如果您将lm另存为RDS,则可以使用
    readRDS
    将lm取回。如果您的意思是恢复从中生成模型的数据,则这是模型对象的一部分(
    lm1$term
    ,对于名为lm1的模型)。我不确定您所说的(3)是什么意思。保存到RDS并读回(1/2)应该能够在后续会话中很好地操作模型(前提是它完全使用
    lm(y~x,data=dat)构建)
    表示法。不清楚“重新构建模型”是什么意思。如果将lm另存为RDS,则可以使用
    readRDS
    返回lm。如果您的意思是恢复从中生成模型的数据,则该数据是模型对象的一部分(
    lm1$term
    用于名为lm1的模型)。我以字符串形式将文件返回到R中。如果使用记事本打开RDS文件,您将看到其内容。因此,我无法直接使用readRDS。因此,问题是:如何在R中重新构建模型?非常感谢much@elfersi你的问题不清楚。再说一遍,你所说的“在R中重新构建模型”是什么意思。在我上面的示例中,
    fit
    包含完整的
    lm
    输出对象。有关模型和数据的所有信息都包含在
    fit
    中。例如,您可以使用
    fit$model
    访问数据
    saveRDS
    将R对象存储在二进制文件中。我不确定您试图使用文本编辑器做什么这里。让我提供一些详细信息。我在R中生成了一个模型。我将其保存为ab RDS文件。我希望在交互式Power BI R可视化中使用该模型(请参阅此处的详细信息:)。现在,在Power BI服务中,您不能在R visual中加载文件。因此,我不能使用readRDS。我的解决方法是首先在Power Query界面中将RDS文件作为字符串加载;然后在R visual中“加载”该字符串(这是可能的).问题:我如何从字符串“重建”模型?希望这能澄清问题。Thanks@elfersi很抱歉,我一点也不清楚。RDS文件包含R对象。如果您将
    lm
    的输出存储在RDS文件中,则RDS文件包含模型详细信息和数据。我不知道您要“重新构建”什么,我认为这个词在这里没有意义。如果你的意思是重新拟合模型,这是没有必要的,因为RDS文件中的
    lm
    对象包含完全拟合的模型。我不明白这与Power BI有什么关系。不幸的是,你的评论/澄清有些模糊。你声明你“不能使用readRDS”,但在下一句话中,您说您“首先将RDS文件作为字符串加载到Power Query接口中”。那么您是否正在使用
    readRDS
    ?如果您有一个RDS文件,您必须使用
    readRDS
    读取它。我将该文件作为字符串返回到R中。它的内容是如果您使用记事本打开RDS文件,您将看到的内容。因此,我不能直接使用readRDS。因此,问题是:如何在R中重新构建模型?谢谢uch@elfersi你的问题不清楚。再说一遍,你所说的“在R中重新构建模型”是什么意思。在我上面的示例中,
    fit
    包含完整的
    lm
    输出对象。有关模型和数据的所有信息都包含在
    fit
    中。例如,您可以使用
    fit$model
    访问数据
    saveRDS
    将R对象存储在二进制文件中。我不确定您试图使用文本编辑器做什么这里。让我提供一些详细信息。我在R中生成了一个模型。我将其保存为ab RDS文件。我希望在交互式Power BI R可视化中使用该模型(请参阅此处的详细信息:)。现在,在Power BI服务中,您不能在R visual中加载文件。因此,我不能使用readRDS。我的解决方法是首先在Power Query界面中将RDS文件作为字符串加载;然后在R visual中“加载”该字符串(这是可能的).问题:我如何从字符串“重建”模型?希望这能澄清问题。Thanks@elfersi很抱歉,我一点也不清楚。RDS文件包含R对象。如果您将
    lm
    的输出存储在RDS文件中,则RDS文件包含模型详细信息和数据。我不知道您要“重新构建”什么,我认为这个词在这里没有意义。如果你的意思是重新拟合模型,这是没有必要的,因为RDS文件中的
    lm
    对象包含完全拟合的模型。我不明白这与Power BI有什么关系。不幸的是,你的评论/澄清有些模糊。你声明你“不能使用readRDS”,但在下一句话中,您说您“首先将RDS文件作为字符串加载到Power Query界面中”。那么您是否正在使用
    readRDS
    ?如果您有RDS文件,则必须使用
    readRDS
    读取它。