【发布时间】:2018-08-25 02:38:28
【问题描述】:
我正在尝试创建一个变量来识别每个独特的主题并将他们的访问“聚集”在一起。例如:
ID Visit Cluster
S101 0 1
S101 6 1
S101 12 1
S102 0 2
S105 0 3
S105 6 3
如何创建这个新变量“Cluster”?我主要使用 dplyr 包。
【问题讨论】:
我正在尝试创建一个变量来识别每个独特的主题并将他们的访问“聚集”在一起。例如:
ID Visit Cluster
S101 0 1
S101 6 1
S101 12 1
S102 0 2
S105 0 3
S105 6 3
如何创建这个新变量“Cluster”?我主要使用 dplyr 包。
【问题讨论】:
先创建一个因子列,然后转换为整数。
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)
【讨论】: