10

親切な魂がRでこれを行う方法を教えていただければ幸いです:

次のように、列と行が重複している正方行列が与えられます。

       1     1     2     2     2     2     3
1  0.000 0.000 0.048 0.048 0.048 0.048 0.059
1  0.000 0.000 0.048 0.048 0.048 0.048 0.059
2  0.048 0.048 0.000 0.000 0.000 0.000 0.059
2  0.048 0.048 0.000 0.000 0.000 0.000 0.059
2  0.048 0.048 0.000 0.000 0.000 0.000 0.059
2  0.048 0.048 0.000 0.000 0.000 0.000 0.059
3  0.059 0.059 0.059 0.059 0.059 0.059 0.000

同じ列と行の名前が重複を示す場合、元の列と重複した列/行を追跡しながら、一意の列と行の名前が必要です。つまり、次のようなものです

        1    1a     2    2a    2b    2c     3
1   0.000 0.000 0.048 0.048 0.048 0.048 0.059
1a  0.000 0.000 0.048 0.048 0.048 0.048 0.059
2   0.048 0.048 0.000 0.000 0.000 0.000 0.059
2a  0.048 0.048 0.000 0.000 0.000 0.000 0.059
2b  0.048 0.048 0.000 0.000 0.000 0.000 0.059
2c  0.048 0.048 0.000 0.000 0.000 0.000 0.059
3   0.059 0.059 0.059 0.059 0.059 0.059 0.000

前もって感謝します

4

1 に答える 1

23

?make.uniqueまたはを使用できます?make.names

v <- as.character(c(1, 1, 2, 2, 2, 2, 3))
make.unique(v)
# [1] "1"   "1.1" "2"   "2.1" "2.2" "2.3" "3"

rownames(これをと と組み合わせる必要がありcolnamesます。)

于 2013-09-12T14:21:10.110 に答える