首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我需要一个虚拟变量,如果另一个变量增加,则为1,如果减少,则为0

我需要一个虚拟变量,如果另一个变量增加,则为1,如果减少,则为0
EN

Stack Overflow用户
提问于 2021-03-31 19:13:48
回答 1查看 32关注 0票数 0

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

EN

回答 1

Stack Overflow用户

发布于 2021-04-02 02:39:10

正如您所说的,您正在处理面板数据,您希望确保在考虑面板结构的同时执行必要的差异计算。例如,您可以使用package plm中的pdata.frame数据结构和相关操作来执行此操作。

下面是一个示例:

代码语言:javascript
复制
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现在是一个因子,其中level -1表示变量pGrunfeld$value减少,0表示不变,1表示变量增加。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66886729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档