【问题标题】:no applicable method for 'lead' applied to an object of class "c('double', 'numeric')"没有适用于“c('double','numeric')”类对象的“lead”方法
【发布时间】: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


【解决方案1】:

我想答案已经写下来了here

简而言之,我认为您使用了错误的lag 函数。尝试改用dplyr::lag

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-21
    • 2022-10-05
    • 1970-01-01
    • 1970-01-01
    • 2019-07-22
    • 1970-01-01
    • 1970-01-01
    • 2021-04-30
    相关资源
    最近更新 更多