【发布时间】:2016-05-24 01:10:49
【问题描述】:
我有以下数据框:
> test = data.frame(A = sample(1:5, 10, replace = T)) %>% arrange(A)
> test
A
1 1
2 1
3 1
4 2
5 2
6 2
7 2
8 4
9 4
10 5
我现在希望每一行都有一个 ID,该 ID 仅在 A 的值发生变化时递增。这是我尝试过的:
> test = test %>% mutate(id = as.numeric(rownames(test))) %>% group_by(A) %>% mutate(id = min(id))
> test
A id
(int) (dbl)
1 1 1
2 1 1
3 1 1
4 2 4
5 2 4
6 2 4
7 2 4
8 4 8
9 4 8
10 5 10
但是,我想得到以下内容:
A id
(int) (dbl)
1 1 1
2 1 1
3 1 1
4 2 2
5 2 2
6 2 2
7 2 2
8 4 3
9 4 3
10 5 4
【问题讨论】:
-
你的A栏是不是一直在增加? “当 A 的值发生变化时”是否意味着例如对于 A = 3 3 4 3,您想要 1 1 2 3?
-
最初,我的 A 列是未排序的,但我会在分配 ID 之前对其进行排序。所以 A = 3 3 4 3 应该是 1 1 2 1 因为我会将它排序为 A = 3 3 3 4
-
好的,感谢您的澄清。如果链接的问题(在顶部的横幅中,如果您刷新页面)不适合您,请告诉我们。