2017-04-06 61 views
0
hhid psid year 
1 1 1989 
1 1 1991 
1 1 1993 
1 1 2000 
1 2 1989 
1 2 1991 
1 2 1993 
1 2 2000 
2 1 1989 
2 1 1991 
2 1 1993 
2 1 2000 

... ... ... 

hhid =一个household.And我的问题是如何创建一个个人ID(UID说)适用于整个面板数据,看起来像内的家庭ID和PSID =个人ID:R屏数据分组户

hhid psid year uid 
1 1 1989 1 
1 1 1991 1 
1 1 1993 1 
1 1 2000 1 
1 2 1989 2 
1 2 1991 2 
1 2 1993 2 
1 2 2000 2 
2 1 1989 3 
2 1 1991 3 
2 1 1993 3 
2 1 2000 3 

在Stata我只是这样做EGEN的uid =组(hhid PSID)

回答

0

这里有一个方法,假设你的data.frame被称为df

df$uid <- as.numeric(as.factor(paste(df$hhid, df$psid, sep=' '))) 

这是可行的,因为因素在内部表示为整数,每个因子级别具有不同的整数值。 as.numeric为您提供这些整数,这些整数对于设计因子级别是独一无二的。

或者,您可以使用dplyrgroup_indices()函数。