Кластерный анализ с использованием pvclust в R

Я хочу провести кластерный анализ определенных столбцов (переменных), скажем, var 5-var10. Для этого я использовал pvclust в R. Теперь я хочу добавить этот столбец кластеров в фактический фрейм данных. Может ли кто-нибудь помочь мне решить эту проблему. Код, который я использовал, приведен ниже:

group <- sqldf("select cq14x1_1,cq14x1_2,cq14x1_3,cq14x1_4,cq14x1_5,cq14x1_6,cq14x1_7, from parma_1")
fit_1 <- pvclust(group,method.hclust="ward",method.dist="euclidean")
group_2 <- (fit_1,alpha=.90)

person Beta    schedule 10.06.2011    source источник
comment
Читая файлы справки для pvclust в пакете pvclust, мне кажется, что pvclust вычисляет p-значения для кластеризации. Базовая кластеризация фактически выполняется с использованием hclust. См. ?hclust и его примеры, чтобы узнать, как выполнять иерархический кластерный анализ.   -  person Andrie    schedule 11.06.2011
comment
-1 за использование sqldf для вещей, которые можно сделать тривиально и намного быстрее, используя базу R ;-)   -  person mbq    schedule 12.06.2011
comment
Я использую sqldf, так как мне удобнее использовать sql-запросы. Я не знаю, как вы могли поставить отрицательную оценку чьим-то предпочтениям?   -  person Beta    schedule 13.06.2011


Ответы (2)


Если проблема заключается в добавлении столбца в фрейм данных, просто используйте:

yourdataframe <- cbind(yourdataframe, newcolumn)

Если это не ваша проблема, попробуйте уточнить вопрос.

person nico    schedule 12.06.2011
comment
На самом деле я хочу добавить столбец, определяющий новый кластер, в основной набор данных. И я использовал опцию cbind. Но, к сожалению, это гинг-ошибка. newdataset = cbind(group, group_2) Ошибка в data.frame(..., check.names = FALSE): аргументы подразумевают разное количество строк: 199, 0 - person Beta; 13.06.2011
comment
@ user697363: ну... вы ничего не присваиваете group2, вы заключаете в код какие-то скобки, но не вызываете никакой функции... поэтому она имеет длину 0, и вы не можете cbind ее cbind во фрейм данных. - person nico; 13.06.2011
comment
Подскажите, пожалуйста, как исправить эту проблему. Я хочу добавить новый столбец в существующий набор данных, где новый столбец содержит кластеры из pvclust. Я могу сделать это с помощью hclust. Но, как я уже упоминал выше, я хочу использовать pvclust, а не hclust. - person Beta; 13.06.2011
comment
Виновником является group_2 <- (fit_1,alpha=.90)... Я не уверен, что это должно делать... Я никогда не использовал pvclust, но, может быть, вы хотите проверить результат str(fit_1). Я предполагаю, что fit_1 будет содержать информацию о кластерах. - person nico; 13.06.2011

Результатом функции pvclust является объект, содержащий элемент hclust (см. раздел значение). hclust в основном представляет собой древовидное представление кластеризации (описано здесь) и может быть передана далее в функцию cutree, которая создает членство в группе. Посмотрите документ на странице. из cutree. Вам нужны эти 3 функции для создания фактического членства в кластере ваших исходных данных, которые затем можно легко добавить в ваш фрейм данных, как предложил @nico.

person davidski    schedule 03.05.2016
comment
Рад помочь. Дайте нам знать, если это решит вашу проблему и/или вызовет новые проблемы. - person davidski; 09.05.2016