如何在R中创建ID列

use*_*558 5 database r

我有一个长格式的纵向数据.我想基于变量列创建一个ID变量,用于标识我的数据的每个观察.我如何在R中做到这一点?

示例:我有这些数据

name year var1 var2
 A    1    4    3
 A    2    5    1
 A    3    4    2
 B    1    .    .
 B    2    4    3
 B    3    5    1
Run Code Online (Sandbox Code Playgroud)

我想生成一个名为"id"的新列,每个名称都有一个唯一的编号,例如:

name id year var1 var2
 A    1  1    4    3
 A    1  2    5    1
 A    1  3    4    2
 B    2  1    .    .
 B    2  2    4    3
 B    2  3    5    1
Run Code Online (Sandbox Code Playgroud)

有帮助吗?

jba*_*ums 6

如果您的name列不只包含单个字母(或者即使包含),您可以使用:

dat$id <- as.numeric(as.factor(dat$name))
Run Code Online (Sandbox Code Playgroud)

或者,更简单地说:

dat$id <- c(as.factor(dat$name))
Run Code Online (Sandbox Code Playgroud)

这里dat是你的data.frame