回归:eval(predvars, data, env) 错误:找不到对象 'volt'

regression: Error in eval(predvars, data, env) : object 'volt' not found

正在尝试 运行 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)

Error in eval(predvars, data, env) : object 'volt' not found

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

它应该有 data,因为列 voltlfquantBS 等仅存在于名为 'data' 的 data.frame 对象的框架内.另外,大小写很重要。在公式中,有lfquantBS,而在数据集中,它被命名为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"))