Я пытаюсь создать один идентификатор для каждого субъекта в моем наборе данных. По сути, я хотел бы столбец, который, когда он является субъектом A, имеет значение 1, а всякий раз, когда он является субъектом, он равен 2, и т. Д. c.
Данные выглядят следующим образом:
Subject <- as.factor(c(rep("A", 8), rep("B", 4), rep("C", 12)))
variable.A <- rnorm(mean = 300, sd = 50, n = Subject)
dat <- data.frame(Subject, variable.A)
dat
Subject variable.A
1 A 345.2206
2 A 308.3600
3 A 355.9006
4 A 286.2234
5 A 216.0149
6 A 204.1322
7 A 333.5757
8 A 225.2777
9 B 351.0208
10 B 184.0209
11 B 297.5687
12 B 370.6719
13 C 385.4616
14 C 257.3872
15 C 313.9441
16 C 311.0300
17 C 275.4909
18 C 349.2425
19 C 251.2615
20 C 358.9317
21 C 360.2139
22 C 341.3104
23 C 344.5236
24 C 257.9959
Я думал, что смогу использовать seq_along()
, но это просто подсчитывает наблюдения по каждому предмету:
library(tidyverse)
dat <- dat %>%
group_by(Subject) %>%
mutate(index = seq_along(Subject))
dat %>% as.data.frame()
Subject variable.A index
1 A 345.2206 1
2 A 308.3600 2
3 A 355.9006 3
4 A 286.2234 4
5 A 216.0149 5
6 A 204.1322 6
7 A 333.5757 7
8 A 225.2777 8
9 B 351.0208 1
10 B 184.0209 2
11 B 297.5687 3
12 B 370.6719 4
13 C 385.4616 1
14 C 257.3872 2
15 C 313.9441 3
16 C 311.0300 4
17 C 275.4909 5
18 C 349.2425 6
19 C 251.2615 7
20 C 358.9317 8
21 C 360.2139 9
22 C 341.3104 10
23 C 344.5236 11
24 C 257.9959 12