使用长数据删除r中的变量
我正在处理长格式的纵向数据,为了我想做的事情,我基本上在尝试将其转换为面板数据集。让我了解一下我目前的情况:使用长数据删除r中的变量,r,if-statement,dplyr,panel,R,If Statement,Dplyr,Panel,我正在处理长格式的纵向数据,为了我想做的事情,我基本上在尝试将其转换为面板数据集。让我了解一下我目前的情况: 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 ATTEN
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是一个虚拟变量,表示我在面试当年是否上学。我的计划是只保留与受访者19岁或20岁时对应的访谈变量。e、 g.对于1983年出生的个体,这意味着只保留ATTENT02变量。我一直在尝试使用filter(来自dplyr)和if-else的组合来实现这一点,但我就是无法获得正确的语法,通常会以错误告终 可能是这样的:
dat %>%
mutate(varnum = as.numeric(substr(VAR,6,7)),
varnum = ifelse(varnum<50, varnum + 2000, varnum + 1900)) %>%
filter((varnum - CYRB) %in% 19:20) %>%
select(-varnum)
df[substring((df$CYRB+19),3,4)=substring(df$VAR,6,7),]
可能是这样的。在其中添加一个or(|
),持续20分钟,您就完成了设置。df[substring(df$VAR,6,7)%in%substring((df$CYRB+c(19,20)),3,4),]
这可能也很有效,而且比在我的另一个字符串中添加or要少一些。
ID CYRB VAR VALUE
1 1 1983 ATTEN02 0
2 2 1979 ATTEN98 1