如何在R中创建ID列

时间:2012-02-15 07:08:26

标签: r database

我有长格式的纵向数据。我想基于变量列创建一个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

我想生成一个名为'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

有任何帮助吗?

2 个答案:

答案 0 :(得分:4)

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

dat$id <- as.numeric(as.factor(dat$name))

或更简单地说:

dat$id <- c(as.factor(dat$name))

其中dat是您的data.frame

答案 1 :(得分:1)

tc='
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'

df <- read.table(text=tc, header=T)

df$ID <- match(df$name, LETTERS)

虽然不清楚name是列还是数据框的rownames。 如果不是列,请尝试rownames(df)而不是df$name