创建 T-1 变量 | R

问题描述 投票:0回答:2

我想创建一个新变量

sales.T.minus.1
,它将显示第 - 1 年的销售额。我在下面创建了一个可复制的示例:

  library(plm)
  library(dplyr)

  data <- pdata.frame(Cigar)
    
  data("Cigar")
    
  data <- data %>%
    mutate(sales.T.minus.1 = lag(sales, 1))

不幸的是这个代码不起作用。变量 sales.T.minus.1 中的值与变量 sales 中的值相同。

销售 销售额.T.减1
64 95.4 95.4

怎样才能达到我想要的结果?

r dplyr panel-data plm
2个回答
0
投票

您的代码本身不起作用,因为您在将其传递给

data("Cigar")
函数后调用了
pdata.frame()
。以下代码有效:

library(plm)
library(dplyr)

data("Cigar" , package = "plm")

data <- pdata.frame(Cigar)

output <- data %>%
    mutate(sales.T.minus.2 = lag(sales, 2))

0
投票

尝试使用

dplyr::lag
,因为您安装的软件包之间可能存在一些冲突的功能。运行时应该像这样工作:

library(plm)
library(dplyr)

data("Cigar")

data <- pdata.frame(Cigar)

data <- data %>%
  mutate(sales.T.minus.1 = dplyr::lag(sales, 2))

# sample output as example

      sales sales.T.minus.1
1-63   93.9              NA
1-64   95.4              NA
1-65   98.5            93.9
1-66   96.4            95.4
1-67   95.5            98.5

创建于 2024-03-06,使用 reprex v2.0.2

© www.soinside.com 2019 - 2024. All rights reserved.