【发布时间】:2021-08-17 00:47:05
【问题描述】:
我正在尝试编写对某些金融公司数据运行多元回归(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 是另一个变量,被定义为公司的市场价值/总重置价值。
此代码适用于我的同事,所以我不确定为什么它不适合我。任何帮助表示赞赏。
【问题讨论】:
-
请提供一个完整的示例,包括所有库语句和可重现形式的输入,以便其他人可以重现该问题。有关提问的信息,请参阅r 标签页面的顶部。
标签: r dplyr error-handling regression panel-data