2013-09-12 3 views
7

Я бы очень признателен, если добрая душа может сказать мне, как это сделать в R:R переименовать дублированные седловины и rownames (subindexing)

Учитывая квадрат матрицы с дубликатами столбцов и строками, такой как

 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 

Заранее спасибо

ответ

15

Вы можете использовать ?make.unique или ?make.names: (. Вы должны объединить это с rownames и colnames)

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" 

Смежные вопросы