如何枚举 R 中的组?
How to enumerate groups in R?
我可以使用哪个本机 R 函数或任何其他库中的哪个函数来列出下图中的列?
数据集
lines = "Group
C
C
C
B
B
A
A
A
A
A
A
D
D
D
D
"
dataset = read.table(textConnection(lines), sep=";", h=T)
尝试使用来自 dplyr
的 cur_group_id()
:
library(dplyr)
#Code 1
newdf <- dataset%>%
mutate(Group=factor(Group,levels = unique(Group),ordered = T)) %>%
group_by(Group) %>% mutate(Num=cur_group_id())
输出:
# A tibble: 15 x 2
# Groups: Group [4]
Group Num
<ord> <int>
1 C 1
2 C 1
3 C 1
4 B 2
5 B 2
6 A 3
7 A 3
8 A 3
9 A 3
10 A 3
11 A 3
12 D 4
13 D 4
14 D 4
15 D 4
或使用base R
:
#Code 2
dataset$Num <- as.integer(factor(dataset$Group,levels = unique(dataset$Group)))
输出:
Group Num
1 C 1
2 C 1
3 C 1
4 B 2
5 B 2
6 A 3
7 A 3
8 A 3
9 A 3
10 A 3
11 A 3
12 D 4
13 D 4
14 D 4
15 D 4
我可以使用哪个本机 R 函数或任何其他库中的哪个函数来列出下图中的列?
数据集
lines = "Group
C
C
C
B
B
A
A
A
A
A
A
D
D
D
D
"
dataset = read.table(textConnection(lines), sep=";", h=T)
尝试使用来自 dplyr
的 cur_group_id()
:
library(dplyr)
#Code 1
newdf <- dataset%>%
mutate(Group=factor(Group,levels = unique(Group),ordered = T)) %>%
group_by(Group) %>% mutate(Num=cur_group_id())
输出:
# A tibble: 15 x 2
# Groups: Group [4]
Group Num
<ord> <int>
1 C 1
2 C 1
3 C 1
4 B 2
5 B 2
6 A 3
7 A 3
8 A 3
9 A 3
10 A 3
11 A 3
12 D 4
13 D 4
14 D 4
15 D 4
或使用base R
:
#Code 2
dataset$Num <- as.integer(factor(dataset$Group,levels = unique(dataset$Group)))
输出:
Group Num
1 C 1
2 C 1
3 C 1
4 B 2
5 B 2
6 A 3
7 A 3
8 A 3
9 A 3
10 A 3
11 A 3
12 D 4
13 D 4
14 D 4
15 D 4