2

以下のデータフレームを展開したい

d <- data.frame(a = c(rep("A",5),rep("B",5),rep("C",3),rep("D",2)))

> d
   a
1  A
2  A
3  A
4  A
5  A
6  B
7  B
8  B
9  B
10 B
11 C
12 C
13 C
14 D
15 D

次のような列 b があるようにします。

> d
   a b
1  A 1
2  A 1
3  A 1
4  A 1
5  A 1
6  B 2 
7  B 2 
8  B 2
9  B 2
10 B 2
11 C 3
12 C 3
13 C 3
14 D 4
15 D 4

それを実現する方法がよくわかりません。

4

2 に答える 2

3

一致を使用:

match(d$a, unique(d$a))
于 2012-11-20T14:08:33.587 に答える
2
d$b <- as.integer(factor(d$a, levels=unique(d$a)))
于 2012-11-20T14:05:03.460 に答える