长面板中具有时间和id条件的虚拟变量

雅各布

我试图将虚拟变量添加到带有时间,id和许多其他变量的面板数据集中。

library(zoo)
geo = c("AT","AT","AT","BE","BE","BE","DE","DE","DE")
time = c("1990Q1","1990Q2","1990Q3","1990Q1","1990Q2","1990Q3","1990Q1","1990Q2","1990Q3")
Data <- as.data.frame(cbind(geo, time))
Data$time = as.yearqtr(Data$time)

实际上有20个国家和97个季度。我不会四处解决'geo'元素,但是(time> 2004Q1)会很好

我希望从1990年第二季度开始为奥地利和德国提供假人。所以我想得出:

    geo time     dummmy
1   AT  1990 Q1  0
2   AT  1990 Q2  1
3   AT  1990 Q3  1
4   BE  1990 Q1  0
5   BE  1990 Q2  0
6   BE  1990 Q3  0
7   DE  1990 Q1  0
8   DE  1990 Q2  1
9   DE  1990 Q3  1

我无法靠近任何地方,我正在考虑一种状态逻辑(如果是,则为生成变量,这是其他东西),但是我在R中最接近的是创建单独的国家/地区假人,然后将每个人与时间变量和子集绑定在一起在提取所有单个虚拟变量并将它们添加到我的原始数据之前,将它们放在时间变量上。那不可能是最好的解决方案(并且不能完全起作用),因为它大约需要40行代码……这应该很容易做到,不是吗?

任何帮助将是巨大的!

ps:我的尝试遵循以下思路:

AT <- as.numeric(Data$geo == "AT")
DE <- as.numeric(Data$geo == "DE")

AT <- as.data.frame(cbind(Data$time, AT))
DE <- as.data.frame(cbind(Data$time, DE))

但我认为我走错了方向,我无法正确设定时间维度...

弗里克先生

看来您必须使用zooas.yearqtr函数在这种情况下,“时间”列可与标准比较运算符进行比较。因此,基本上,您似乎只希望time>“ 1990Q1”和“ geo”为“ AT”或“ DE”的所有值。你可以做到这一点

Data$dummy<-(Data$time>as.yearqtr("1990Q1") & Data$geo %in% c("AT","DE"))+0

这里做+0将逻辑真/假设置为0/1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在r中将具有时间变量的纵向数据从宽格式转换为长格式

顶面板中没有时间(Gnome Classic)

删除具有时间序列条件的重复项

添加具有时间组的变量

R中具有时间条件的子集数据集

具有时间和parseInt的UI滑块

具有时间戳差异的 Groupby 'ID' 并在 Python 中维护其他列

如何使用具有时间段约束和其他条件的函数 PySpark 的窗口

根据WooCommerce结帐中的打开,关闭和休息时间添加具有时间间隔的选择字段

使用验证的方法的()具有和不具有时间(1)参数

如何更新具有条件的表的所有时间戳?

提取在同一行中同时具有时间戳和位置的数据框

jprofiler中的固有时间

ggplot2中具有时间序列的月和日的时间序列在年份中具有方面

在具有时间/金额信息的金融数据集中添加多个变量(列)

具有时间间隔的Javascript时间验证器?

DateTime字符串以日期表示,有时间和有时间

具有时间和日期选择器的Android警报管理器

Python Websocket-具有时间和消息限制

Cassandra:具有时间戳和大型数据集的表设计

创建具有时间步长和多种功能的新数组,例如用于LSTM

具有时间表的后台获取和核心位置

R中具有时间序列的2SLS(带有dynlm包?)

选择所有具有时间格式的列

将数据帧中带有时间戳的多行事件转换为具有开始和结束日期时间的单行

JavaScript中没有时间戳的日期和时间

带有时间戳比较的php中的条件格式html表

如何在反应 js 中设置具有时间延迟的循环内的状态

如何从具有时间戳列的数据库表中检索