在R中,我以字符串形式获取二进制文件的内容(由于设计问题,我无法直接访问该文件)。
此文件最初是lm模型。
如何将字符串转换回lm模型?
谢谢
答案 0 :(得分:0)
我假设您根据以下示例(基于this answer)使用了base::dput()
:
# Generate some model over some data
data <- sample(1:100, 30)
df <- data.frame(x = data, y = 2 * data + 20)
model <- lm(y ~ x, df)
# Assuming this is what you did you have the model structure inside model.R
dput(model, control = c("quoteExpressions", "showAttributes"), file = "model.R")
# ----- This is where you are, I presume -----
# So you can copy the content of model.R here (attention to the single quotes)
mstr <- '...'
# Execute the content of mstr as a piece of code (loading the model)
model1 <- eval(parse(text = mstr))
# Parse the formulas
model1$terms <- terms.formula(model1$terms)
# ----- Test it -----
# New data
df1 <- data.frame(x = 101:110)
pred <- as.integer(predict(model, df1))
pred1 <- as.integer(predict(model1, df1))
identical(pred, pred1)
# [1] TRUE
model
#
# Call:
# lm(formula = y ~ x, data = df)
#
# Coefficients:
# (Intercept) x
# 20 2
#
model1
#
# Call:
# lm(formula = y ~ x, data = df)
#
# Coefficients:
# (Intercept) x
# 20 2
# Check summary too (you'll see some minor differences)
# summary(model)
# summary(model1)