r-我需要一个伪变量,如果另一个变量增加,它是1,如果它减少,它是0



我有个人和年份的面板数据,利息变量是可扣除的(可以是500、1000或1500(。我需要创建一个虚拟变量,如果该人的免赔额比前一年增加,则为0,如果减少,则为1,如果保持不变,则为2。

当您使用面板数据时,您需要确保在尊重面板结构的同时执行必要的差异计算。例如,您可以使用包plm中的pdata.frame数据结构和相关操作来执行此操作。

这里有一个例子:

library(plm)
data("Grunfeld", package = "plm")
pGrunfeld <- pdata.frame(Grunfeld, index = c("firm", "year"))
pGrunfeld[2, "value"] <- pGrunfeld[1, "value"] # manipulate data so that we have a data point for case "no change"
pGrunfeld$value_diff <- diff(pGrunfeld$value)
pGrunfeld$fac <- factor(sign(pGrunfeld$value_diff))
head(pGrunfeld$fac)
# 1-1935 1-1936 1-1937 1-1938 1-1939 1-1940 
# <NA>      0      1     -1      1      1 
# Levels: -1 0 1

pGrunfeld$fac现在是一个因子,其中级别-1表示变量pGrunfeld$value中的减少、0无变化和1增加。

相关内容

最新更新