R 在datadist$限制中,闭包不可再附加
当使用R 在datadist$限制中,闭包不可再附加,r,linear-regression,R,Linear Regression,当使用rms包和ols()函数进行简单的多变量回归时,我不完全确定为什么会收到此错误。lm()函数工作正常 错误: library(rms) datadist <- datadist(dat) options("datadist" = "datadist") mod <- ols(log(value) ~ x1 + x2, data = dat, x = TRUE, y = TRUE) > mod <- ols(log(value) ~ x1 + x2, data =
rms
包和ols()
函数进行简单的多变量回归时,我不完全确定为什么会收到此错误。lm()
函数工作正常
错误:
library(rms)
datadist <- datadist(dat)
options("datadist" = "datadist")
mod <- ols(log(value) ~ x1 + x2, data = dat, x = TRUE, y = TRUE)
> mod <- ols(log(value) ~ x1 + x2, data = dat, x = TRUE, y = TRUE)
Error in datadist$limits : object of type 'closure' is not subsettable
> mod <- lm(log(value) ~ x1 + x2, data = dat)
> summary(mod)
Call:
lm(formula = log(value) ~ x1 + x2, data = dat)
Residuals:
Min 1Q Median 3Q Max
-0.032746 -0.021049 -0.004316 0.010937 0.080848
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.7514306 0.1487970 31.93 7.64e-09 ***
x1 0.0001335 0.0001019 1.31 0.232
x2 -0.0009582 0.0007205 -1.33 0.225
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.03755 on 7 degrees of freedom
Multiple R-squared: 0.2261, Adjusted R-squared: 0.004997
F-statistic: 1.023 on 2 and 7 DF, p-value: 0.4077
datadist$limits中出错:“closure”类型的对象不可子集
样本数据:
dat <- structure(list(value = c(153.7, 137.2, 137.2, 137.2, 137.2, 137.2,
137.2, 137.2, 137.2, 144.3), x1 = c(1586.30574782368, 1827.63764435891,
1274.37779664208, 1470.22193641518, 1424.71486797217, 1588.96099774091,
1768.09933607758, 1447.4030640002, 1586.11159875168, 1741.04342002899
), x2 = c(9.37073885963036, 79.466637406771, 3.07432642677304,
5.32614246511366, 9.65257915442635, 9.70809241832467, 47.0161105721418,
39.7744598414865, 13.2940602286908, 26.6250313249184)), .Names = c("value",
"x1", "x2"), row.names = c(NA, 10L), class = "data.frame")
使用lm的型号
:
library(rms)
datadist <- datadist(dat)
options("datadist" = "datadist")
mod <- ols(log(value) ~ x1 + x2, data = dat, x = TRUE, y = TRUE)
> mod <- ols(log(value) ~ x1 + x2, data = dat, x = TRUE, y = TRUE)
Error in datadist$limits : object of type 'closure' is not subsettable
> mod <- lm(log(value) ~ x1 + x2, data = dat)
> summary(mod)
Call:
lm(formula = log(value) ~ x1 + x2, data = dat)
Residuals:
Min 1Q Median 3Q Max
-0.032746 -0.021049 -0.004316 0.010937 0.080848
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.7514306 0.1487970 31.93 7.64e-09 ***
x1 0.0001335 0.0001019 1.31 0.232
x2 -0.0009582 0.0007205 -1.33 0.225
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.03755 on 7 degrees of freedom
Multiple R-squared: 0.2261, Adjusted R-squared: 0.004997
F-statistic: 1.023 on 2 and 7 DF, p-value: 0.4077
>模块摘要(模块)
电话:
lm(公式=log(值)~x1+x2,数据=dat)
残差:
最小1季度中值3季度最大值
-0.032746 -0.021049 -0.004316 0.010937 0.080848
系数:
估计标准误差t值Pr(>t)
(截距)4.7514306 0.1487970 31.93 7.64e-09***
x1 0.0001335 0.0001019 1.31 0.232
x2-0.0009582 0.0007205-1.33 0.225
---
签名。代码:0'***'0.001'***'0.01'*'0.05'.'0.1''1
剩余标准误差:7个自由度上的0.03755
倍数R平方:0.2261,调整后的R平方:0.004997
F统计量:2和7 DF上的1.023,p值:0.4077
调用数据“datadist”
会混淆datadist()
。请尝试以下方法:
d <- datadist(dat)
options(datadist = "d") ## don't need quotes around argument name ...
mod <- ols(log(value) ~ x1 + x2, data = dat, x = TRUE, y = TRUE)
ddatadist
是一个函数,没有为函数(闭包)定义$
运算符。(这就是“类型为‘closure’的对象不可再附加”的意思)谢谢。我正在慢慢地阅读这本书和学习这个软件包,所以在我完成它的过程中,这些问题就出现了。谢谢你的帮助。