r - 没有适用于“c('double','numeric')”类对象的“lead”方法
问题描述
我正在尝试编写一个在某些金融公司数据上运行多元回归(OLS、FE、RE)模型的代码,但在定义新变量时遇到错误。使用下面的代码,我正在尝试使用我在之前的代码中已经定义的变量来定义新的滞后/领先变量:
## Lead/Lag variables
library(dplyr)
df <- df[with(df,order(gvkey,fyear)), ]
df <- df %>%
group_by(gvkey) %>%
mutate(lagfyear = lag(fyear,1),
lagat = lag(at,1),
lagcash = lag(cash,1),
lagtang = lag(Q,1),
lagzscore = lag(zscore,1),
lagQ = lag(Q,1),
leadQ = lead(Q,1),
leadroa = lead(roa, 1),
leadz = lead(zscore,1),
leadrd = lead(rd_lagat,1),
leadlogmktcap = lead(tang,1),
leadtang = lead(tang, 1),
leadcf = lead(cf, 1),
leadlogsale = lead(logsale,1)) %>%
as.data.frame()
我收到以下错误:
错误:
mutate()
列有问题leadQ
。我leadQ = lead(Q, 1)
。x 没有适用于 'lead' 的方法应用于类“c('double', 'numeric')”的对象 i 组 1 中发生错误:gvkey = 1004。
gvkey 是分配给每个公司的唯一密钥。Q 是另一个变量,被定义为公司的市场价值/总重置价值。
这段代码适用于我的同事,所以我不确定为什么它不适合我。任何帮助表示赞赏。
解决方案
我想答案写在这里。
简而言之,我认为您使用了错误的lag
功能。尝试dplyr::lag
改用。
推荐阅读
- python - Python 正则表达式:如何从字符串中提取人体高度(美国)
- python - Python通过减去前一个日期的价格来计算新列的值
- r - 使用 geom_boxplot 在连续数据上进行分组箱形图制作 NA 标签
- laravel - 在 Laravel 中对具有急切加载关系的雄辩模型进行排序
- c# - 为什么这些 .NET 捕获组正则表达式 (regex) 语句的功能不同?
- goland - Goland 崩溃并关闭
- json - angular 6 - http 从 url 获取 api
- node.js - 当环回中不存在某些属性时如何排除值
- identityserver3 - 在身份服务器 3 中如何将用户与客户端相关联
- html - 抓取嵌套的 web vba 标签