让我解释一下我的问题:我有一个由2011年和2012年的家庭观察组成的数据框。每个家庭都有一个特定的ID号(字符类型),允许多年来跟随家庭。问题是,我需要只获得2011年和2012年出现的家庭,以便了解特征的变化。因此,我想从我的数据集中仅提取家庭ID出现两次的行,但我真的不知道该怎么做。 如果有人对此有所了解,我真的很高兴!谢谢,干杯!
答案 0 :(得分:0)
你去吧!
df <- data.frame(householdid = c(sample(1:10,5),sample(1:10,5)), year=c(rep(2011,5),rep(2012,5)))
# householdid year
# 1 4 2011
# 2 7 2011
# 3 2 2011
# 4 3 2011
# 5 1 2011
# 6 5 2012
# 7 7 2012
# 8 4 2012
# 9 3 2012
# 10 10 2012
counts <- setNames(as.data.frame(table(df$householdid)),c("householdid","n"))
# householdid n
# 1 1 1
# 2 2 1
# 3 3 2
# 4 4 2
# 5 5 1
# 6 7 2
# 7 10 1
hh_2y <- subset(counts,n==2)
# householdid n
# 3 3 2
# 4 4 2
# 6 7 2
df_2y <- merge(df,hh_2y)
# householdid year n
# 1 3 2011 2
# 2 3 2012 2
# 3 4 2012 2
# 4 4 2011 2
# 5 7 2012 2
# 6 7 2011 2