【发布时间】:2016-02-16 18:23:12
【问题描述】:
我正在尝试基于 ifelse 函数在 R 中创建一系列变量:
comp1990<-ifelse(year_begin<1990 & year_end>1990,1,0)
comp1991<-ifelse(year_begin<1991 & year_end>1991,1,0)
comp1992<-ifelse(year_begin<1992 & year_end>1992,1,0)
我在 1970-2007 年间一直这样做。现在,我每年只有一条线。
在 stata 中,我可以通过以下方式做到这一点:
forvalues n=1970(1)2007 {
gen comp\`n'== (year_begin<\`n' & year_end>\`n')
}
在 R 中是否有类似的简单方法可以做到这一点?我知道for 循环不是很好。也许使用应用?
如果银行分行在第 n 年存在,则创建一个 dummy = 1,否则为 0(因此,如果银行分行在第 n 年之前成立并且在第 n 年之后关闭),这意味着它是在第 n 年运营。
提前感谢您的帮助!
【问题讨论】:
-
一个更好的问题是您为什么要这样做?这似乎很奇怪
-
为两个不同用户连续出现的几乎相同的问题提供解释也很有帮助:stackoverflow.com/q/35439914/324364
-
看起来您正在将数据“分区”成块,但我不明白您为什么要这样做。您能否为数据块添加所需的处理逻辑,以便我们找到更好的解决方案(*应用函数等)?