滞后变量
Lagging Variables r
我有以下数据集:
library(dplyr)
dat <- tibble(
IDnumber = rep(c("IT974", "IT920", "IT901"), c(2,2,3)),
Sales = c(16565,16895,2842,2069,1563,1247,1115),
Leverage = c(1.25,1.29,1.36,1.22,1.21,1.13,1.13)
)
我会做的是滞后变量一年,只有当我的 IDnumber 与前一年相同时,否则我会显示值 0。
我使用了这段代码,但它不起作用:
library(Hmisc)
for(i in c(length(IDnumber))) {
if (IDnumber[i] == IDnumber[i-1])
Lag_Leverage <- Lag(Leverage)
if (IDnumber[i] != IDnumber[i-1])
Lag_Leverage <- 0
}
你可以这样做:
library(dplyr)
dat <- tibble(
IDnumber = rep(c("IT974", "IT920", "IT901"), c(2,2,3)),
Sales = c(16565,16895,2842,2069,1563,1247,1115),
Leverage = c(1.25,1.29,1.36,1.22,1.21,1.13,1.13)
)
dat %>% group_by(IDnumber) %>%
mutate(Lag_Sales = lag(Sales, default=0),
Lag_Leverage = lag(Leverage, default=0))
# # A tibble: 7 x 5
# # Groups: IDnumber [3]
# IDnumber Sales Leverage Lag_Sales Lag_Leverage
# <chr> <dbl> <dbl> <dbl> <dbl>
# 1 IT974 16565 1.25 0 0
# 2 IT974 16895 1.29 16565 1.25
# 3 IT920 2842 1.36 0 0
# 4 IT920 2069 1.22 2842 1.36
# 5 IT901 1563 1.21 0 0
# 6 IT901 1247 1.13 1563 1.21
# 7 IT901 1115 1.13 1247 1.13
我有以下数据集:
library(dplyr)
dat <- tibble(
IDnumber = rep(c("IT974", "IT920", "IT901"), c(2,2,3)),
Sales = c(16565,16895,2842,2069,1563,1247,1115),
Leverage = c(1.25,1.29,1.36,1.22,1.21,1.13,1.13)
)
我会做的是滞后变量一年,只有当我的 IDnumber 与前一年相同时,否则我会显示值 0。
我使用了这段代码,但它不起作用:
library(Hmisc)
for(i in c(length(IDnumber))) {
if (IDnumber[i] == IDnumber[i-1])
Lag_Leverage <- Lag(Leverage)
if (IDnumber[i] != IDnumber[i-1])
Lag_Leverage <- 0
}
你可以这样做:
library(dplyr)
dat <- tibble(
IDnumber = rep(c("IT974", "IT920", "IT901"), c(2,2,3)),
Sales = c(16565,16895,2842,2069,1563,1247,1115),
Leverage = c(1.25,1.29,1.36,1.22,1.21,1.13,1.13)
)
dat %>% group_by(IDnumber) %>%
mutate(Lag_Sales = lag(Sales, default=0),
Lag_Leverage = lag(Leverage, default=0))
# # A tibble: 7 x 5
# # Groups: IDnumber [3]
# IDnumber Sales Leverage Lag_Sales Lag_Leverage
# <chr> <dbl> <dbl> <dbl> <dbl>
# 1 IT974 16565 1.25 0 0
# 2 IT974 16895 1.29 16565 1.25
# 3 IT920 2842 1.36 0 0
# 4 IT920 2069 1.22 2842 1.36
# 5 IT901 1563 1.21 0 0
# 6 IT901 1247 1.13 1563 1.21
# 7 IT901 1115 1.13 1247 1.13