1

たとえば、次のマトリックスがあります。

> a = cbind(sample(c(0,1),6,replace=T), sample(c(0,1),6,replace=T))
> a
     [,1] [,2]
[1,]    0    0
[2,]    0    0
[3,]    0    1
[4,]    1    0
[5,]    1    0
[6,]    1    1

bオブジェクトを作成したいaので、それbが要因であり、各レベルは の異なる行を表しaます。この場合、次のようにbなります。

> b
[1] 1 1 2 3 3 4
Levels: 1 2 3 4

私は汚い方法でそれを行うことができますが、エレガントな解決策があるかどうか疑問に思っていますか?

4

3 に答える 3

1

データの単純さに応じて、次の方法が 1 つの方法になります。

a
##      V1 V2
## [1,]  0  0
## [2,]  0  0
## [3,]  0  1
## [4,]  1  0
## [5,]  1  0
## [6,]  1  1

hash <- apply(a, 1, paste, collapse = "/")
b <- factor(hash, labels = 1:length(unique(hash)))
b
## [1] 1 1 2 3 3 4
## Levels: 1 2 3 4
于 2013-04-11T07:28:33.573 に答える