【发布时间】:2016-08-03 17:27:56
【问题描述】:
我正在处理长格式的纵向数据,并且出于我想做的目的,我基本上是在尝试将其转换为面板数据集。让我了解一下我目前拥有的东西:
ID CYRB VAR VALUE
1 1983 ATTEN98 1
1 1983 ATTEN00 1
1 1983 ATTEN02 0
1 1983 ATTEN04 0
2 1979 ATTEN98 1
2 1979 ATTEN00 0
2 1979 ATTEN02 0
2 1979 ATTEN04 0
....
其中 ATTENXX 是一个虚拟变量,表示个人 i 在面试当年是否上学。我的计划是只保留与受访者 19 岁或 20 岁相对应的访谈变量。例如对于 1983 年出生的个人,这意味着只保留 ATTEN02 变量。我一直在尝试使用过滤器(来自 dplyr)和 if else 的组合来做到这一点,但我就是无法正确使用语法,并且通常会出现错误。
【问题讨论】:
-
df[substring((df$CYRB + 19), 3, 4) == substring(df$VAR, 6, 7), ]也许是这样的。在那里添加一个或|20 就可以了。 -
df[substring(df$VAR, 6, 7 )%in% substring((df$CYRB + c(19,20)), 3, 4), ]这也可能有效,而且比在我的另一个中添加 OR 少一点。
标签: r if-statement dplyr panel