我有一个长格式的纵向数据.我想基于变量列创建一个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)
有帮助吗?
如果您的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。