我有一個包含人名的數據集,但我認爲id是錯誤表示的(在數據集中,每個人的id不是唯一的)。我想創建一個新的id向量,但我想知道如何。例如,如果我們有以下名單:爲面板數據中的每個觀察值創建標識
name
John
John
John
Tom
Tom
David
David
Sonia
Sonia
Ben
我們如何爲每個人創建唯一的ID?
id name
1 John
1 John
1 John
2 Tom
2 Tom
3 David
3 David
4 Sonia
4 Sonia
5 Ben
看起來像一個簡單的過程,但我不知道如何使用循環!任何建議都會有幫助。
,我想出了一個for循環,看起來接近,但與錯誤:
> for (i in 1:5){
+ a<-unique(dat$name)
+ a<-as.vector(a)
+ dat$id[a[i]]<-i
+ dat$id[a[i+1]]<-i+1
+ }
Error in `$<-.data.frame`(`*tmp*`, "id", value = c(5L, 5L, 5L, 5L, 5L, :
replacement has 11 rows, data has 10