我有一個名爲ID的列的數據框df。 多行可能具有相同的ID,我想設置一個列值「發生」以指示ID以前見過多少次。在R中設置數據框中行子集的列值
for (i in unique(df$ID)) {
rows = df[df$ID==i, ]
for (idx in 1:nrow(rows)) {
rows[idx,'occurrence'] = idx
}
}
不幸的是,這會將出現列添加到行,但它不會更新原始數據框。如何獲取添加到df的出現列?
更新:將ROW_NUMBER()函數中指出neilfws的偉大工程。其實,我有一個後續問題:數據框也有一個年份的列,我需要做的是添加一個新的列(比如Prev.Year.For.This.ID)爲上一次出現ID 。例如,如果輸入的是
Year = c(1991,1991,1993,1994,1995)
ID = c(1,2,1,2,1)
df <- data.frame (Year, ID)
想我的輸出看起來像這樣:
ID Year occurrence Prev.Year.For.This.Id
1 1991 1 <NA>
2 1992 1 <NA>
1 1993 2 1991
2 1994 2 1992
1 1995 3 1993
請提供樣本數據,使這個重複性。 – www