r - 错误 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
是来自数据库的变量
希望有些人可以帮助我解决我的问题。
提前谢谢了。
解决方案
你的第三个论点是na.omit
。您可能看到有人在写类似na.action = na.omit
. lm
但是,如果您通过键入查找帮助?lm
,您将看到:
Usage:
lm(formula, data, subset, weights, na.action, ... # etc
它告诉你第三个参数lm
是subset
。因此,您正在将调用的对象传递na.omit
给subset
参数,该参数lm
试图用来对您的数据进行子集化。不幸的是,na.omit
是一个 R 函数(又名“闭包”)。毫不奇怪,R 不知道如何使用此函数对数据进行子集化。因此错误。
推荐阅读
- c# - 我可以从 C# 调用包中的 oracle 游标吗?
- typescript - 在 nodejs / typescript 中为 graphql 文件添加自定义类型时 MODULE_NOT_FOUND
- python - 在 Python 中显示的有效错误消息
- c# - C# 中的“使用系统”是什么意思?
- jquery - 当操作设置为其他页面时,为什么jQuery提交会触发自己的页面
- javascript - 反应 | 如何选择要使用的 CSS 文件
- python - Pandas 包含列名包含 IF 语句中的特定字符串的列?
- postgresql - postgres.app:如何在 Mac 上安装 libpq-dev?
- sql-server - 使用计时器触发的 Azure 函数执行长时间运行的异步存储过程
- sql - Postgres 函数返回太多列