【发布时间】:2019-02-12 18:19:27
【问题描述】:
我有一个这种形式的数据框
familyid memberid occupation panelid year
1 1 1 1 2000
1 2 1 1 2000
2 1 1 1 2000
2 2 2 1 2000
3 1 1 1 2000
3 2 1 1 2000
3 3 1 1 2000
1 1 2 2 2001
1 2 1 2 2001
2 1 2 2 2001
2 2 2 2 2001
3 1 1 2 2001
3 2 2 2 2001
3 3 2 2 2001
我想过滤此数据框以获得以下内容。
familyid memberid occupation panelid year
1 1 1 1 2000
2 1 1 1 2000
3 2 1 1 2000
3 3 1 1 2000
1 1 2 2 2001
2 1 2 2 2001
3 2 2 2 2001
3 3 2 2 2001
换句话说,我只想保留在 2000 年 (panelid==1) 显示职业==1 和在 2001 年显示职业==2 (panelid==2) 的面板 obs。有人知道怎么做这个吗?非常感谢大家,
马可
【问题讨论】:
-
试试
subset(df1, (occupation == 1 & year == 2000) | (occupation == 2 & year == 2001)) -
请注意,在输入中有 6 个观察值,其中 occuopation 为 1,year 为 2000。因此,不清楚某些行是如何在预期中被删除的
-
不确定
panelid是否与occpuation相同是巧合,还是您更喜欢year而不是panelid,但您也可以使用subset(df1, panelid == occpuation)跨度> -
@akrun 这是因为我只想保留从 2000 年职业 1 转移到 2001 年职业 2 的家庭成员。如果一个家庭成员在 2000 年和 2001 年都拥有职业 1,我希望它被删除。
标签: r