2014-09-24 3 views
1

У меня есть матрица, которая определяет назначения кластеров для нескольких документов для центроидов кластеров, эта матрица имеет строки как документы и столбцы в качестве центроидов кластера, что я хочу сделать, это то, что сохраняйте только одно кластерное назначение и удаляйте остальные, в основном, разбивая связи кластеров для документов. Вот пример:Сохранение одного максимального значения из нескольких максимальных значений в R

[,1] [,2] [,3] 
[1,] 0 0 1 
[2,] 1 1 0 
[3,] 1 0 0 

Таким образом документ 2 присваивается группе 1, а также к группе 2, что я хочу только, чтобы держать одно назначение кластера, сейчас я пытаюсь сохранить назначение кластера, который имеет самый низкий показатель, поэтому документ 2 должен быть назначен в кластер 1. Я застрял о том, как можно реализовать это в R.

ответ

1

Оба which.max и which.is.max (последний находится в nnet пакете) уже решить вашу проблему. which.max возвращает первый максимум, а which.is.max разрывает связи в случайном порядке.

apply(m, 1, which.max) 

или

apply(m, 1, which.is.max) 
+0

Кроме 'max.col',' max.col (м, "первый") '. –

+0

Как преобразовать мою матрицу в одну, где эта функция используется только по 1 на строку, я пробовал много подходов, но каждый раз, когда он возвращает мне вектор позиций, содержащих первый максимальный элемент, пожалуйста, вы можете предоставить мне фрагмент кода , – user37940

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