R:根据主题ID创建新的聚类变量

时间:2018-08-25 02:38:29

标签: r dplyr

我正在尝试创建一个变量,以识别每个唯一的主题,并一起“聚类”他们的访问。例如:

ID   Visit  Cluster
S101  0      1
S101  6      1
S101  12     1
S102  0      2
S105  0      3
S105  6      3

如何创建这个新变量“ Cluster”?我主要使用dplyr软件包。

1 个答案:

答案 0 :(得分:1)

首先创建一个因子列,然后转换为整数。

library(dplyr)

dat2 <- dat %>%
  mutate(Cluster = as.integer(factor(ID)))

dat2
#     ID Visit Cluster
# 1 S101     0       1
# 2 S101     6       1
# 3 S101    12       1
# 4 S102     0       2
# 5 S105     0       3
# 6 S105     6       3

或使用group_indices

dat2 <- dat %>%
  mutate(Cluster = group_indices(., ID))
dat2
#     ID Visit Cluster
# 1 S101     0       1
# 2 S101     6       1
# 3 S101    12       1
# 4 S102     0       2
# 5 S105     0       3
# 6 S105     6       3

数据

dat <- read.table(text = "ID   Visit
S101  0
                  S101  6 
                  S101  12
                  S102  0
                  S105  0
                  S105  6",
                  header = TRUE, stringsAsFactors = FALSE)