每个主题的唯一ID-tidyverse

问题描述 投票:0回答:1

我正在尝试为数据集中的每个主题创建一个ID。基本上,我想要一列,每当它是Subject A时该值都是1,每当它是Subject时它就等于2,等等。

数据看起来像这样:

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
tidyverse id
1个回答
0
投票

我知道了。我可以使用group_indices()函数来使其工作:

© www.soinside.com 2019 - 2024. All rights reserved.