首页 > 解决方案 > 回归:eval(predvars,data,env)中的错误:找不到对象'volt'

问题描述

尝试在 R 中运行 OLS 回归模型。

    data = read.csv("C:/.../VOLATILITY.csv")
    head(data)
       volt LfquantBS HfquantBS LfbankVOL HfbankMM HfnonbankMM HfindMM
    1 18.23       3.7       9.2       3.2      2.6        35.3     7.9
    2 16.09       4.1      11.4       3.2      2.7        35.3     8.2
    3 16.79       4.1      11.4       3.2      2.7        35.3     8.2
    4 17.01       4.1      11.4       3.2      2.7        35.3     8.2
    5 16.09       4.1      11.4       3.2      2.7        35.3     8.2
    6 19.66       6.2      10.5       4.2      1.8        30.7     8.6
    model <- lm(volt ~ lfquantBS + HfquantBs + LfbankVOL + HfbankMM + HfnonbankMM 
    + HfindMM)

eval 中的错误(predvars,data,env):找不到对象“volt”

以前做过这个没有任何问题。任何帮助表示赞赏。

标签: rlinear-regression

解决方案


它应该具有 ,data因为列voltlfquantBS等仅存在于名为“数据”的 data.frame 对象的框架内。另外,情况很重要。公式中,数据集中有lfquantBSwhile,命名为LfQuantBS

lm(volt ~ LfquantBS + HfquantBS + LfbankVOL + HfbankMM +
        HfnonbankMM + HfindMM, data = data)

-输出

Call:
lm(formula = volt ~ LfquantBS + HfquantBS + LfbankVOL + HfbankMM + 
    HfnonbankMM + HfindMM, data = data)

Coefficients:
(Intercept)    LfquantBS    HfquantBS    LfbankVOL     HfbankMM  HfnonbankMM      HfindMM  
    23.2866       1.0846      -0.9858           NA           NA           NA           NA  

关于评论Have done this before without any problem。OP 可能attach(data)在过去将这些列创建为全局环境中的对象,或者在构造 data.frame 之前先将这些列创建为矢量对象

数据

data <- structure(list(volt = c(18.23, 16.09, 16.79, 17.01, 16.09, 19.66
), LfquantBS = c(3.7, 4.1, 4.1, 4.1, 4.1, 6.2), HfquantBS = c(9.2, 
11.4, 11.4, 11.4, 11.4, 10.5), LfbankVOL = c(3.2, 3.2, 3.2, 3.2, 
3.2, 4.2), HfbankMM = c(2.6, 2.7, 2.7, 2.7, 2.7, 1.8), HfnonbankMM = c(35.3, 
35.3, 35.3, 35.3, 35.3, 30.7), HfindMM = c(7.9, 8.2, 8.2, 8.2, 
8.2, 8.6)), class = "data.frame", row.names = c("1", "2", "3", 
"4", "5", "6"))

推荐阅读