首页 > 解决方案 > 错误 r:简单回归中的无效下标类型“闭包”

问题描述

不幸的是,我是 r 的初学者。我想用命令 lm 在 r 中运行一个简单的线性回归模型,但每次我尝试都会出现以下错误:

xj[i] 中的错误:无效的下标类型“闭包”

回归模型如下:

REG1 <- lm(flowpercent~ret+tna+fundage+number_shr_cl,data = reg, na.omit)
 #-flowpercent is a calculated variable:

reg$flowpercent <- reg$flow_dollar/lag(reg$tna, n=1)

 #-fundage is also calculated:

reg$fundage <- as.numeric(difftime(ref_date,reg$InceptionDate, units = "days")/365.25)

ret, tna, number_shr_cl是来自数据库的变量

希望有些人可以帮助我解决我的问题。

提前谢谢了。

标签: r

解决方案


你的第三个论点是na.omit。您可能看到有人在写类似na.action = na.omit. lm但是,如果您通过键入查找帮助?lm,您将看到:

Usage:

     lm(formula, data, subset, weights, na.action, ... # etc

它告诉你第三个参数lmsubset。因此,您正在将调用的对象传递na.omitsubset参数,该参数lm试图用来对您的数据进行子集化。不幸的是,na.omit是一个 R 函数(又名“闭包”)。毫不奇怪,R 不知道如何使用此函数对数据进行子集化。因此错误。


推荐阅读