我有个人和年份的面板数据,利息变量是可扣除的(可以是500,1000或1500)。我需要创建一个虚拟变量,如果该人的免赔额从上一年增加,则为0,如果减少,则为1,如果保持不变,则为2。
发布于 2021-04-02 02:39:10
正如您所说的,您正在处理面板数据,您希望确保在考虑面板结构的同时执行必要的差异计算。例如,您可以使用package 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 1pGrunfeld$fac现在是一个因子,其中level -1表示变量pGrunfeld$value减少,0表示不变,1表示变量增加。
https://stackoverflow.com/questions/66886729
复制相似问题