我有一個分組的數據集,但基團不具有唯一的標識符,像這樣:分配唯一的ID,根據圖案
direction <- c('N','S','W','N','N','S','W','N','S','W')
measurement <- c(4,6,1,7,2,4,7,4,1,4)
x <- data.frame(direction, measurement)
x
direction measurement
1 N 4
2 S 6
3 W 1
4 N 7
5 N 2
6 S 4
7 W 7
8 N 4
9 S 1
10 W 4
在x
,對於direction
的值是爲了,並且每個重複的'N','S'和'W'組是一個組。
direction
的每組值都始終以'N'開始,但並非所有組都有一組完整的'N','S'和'W'行(請參見下面的ID
B)。
措辭的另一種說法是:我想爲每組最多3行提供一個唯一的ID,從direction == 'N'
開始。
期望的結果是這樣的:
direction measurement ID
1 N 4 A
2 S 6 A
3 W 1 A
4 N 7 B
5 N 2 C
6 S 4 C
7 W 7 C
8 N 4 D
9 S 1 D
10 W 4 D
注意ID
B只有關於 'N' 中的行。
尼斯。沒有考慮'cumsum'。聰明。 – Balter
@Imo,我不能相信你用一行代碼解決了這個問題。但是,你能解釋一下'cumsum'在這裏工作的方式嗎?我讀了它的文檔,仍然無法理解這一點。謝謝! – holastello
@holastello我添加了一些文字的解釋。也許,看看發生了什麼的最好方法是分階段嘗試代碼。首先,'x $ direction ==「N」'然後'cumsum(x $ direction ==「N」)''。這個結果被作爲索引提供給'LETTERS',一個存儲的向量。 – lmo