У меня есть набор данных, состоящий из дихотомических значений. Это очень большой набор данных, но вот пример:Сортировка столбцов по столбцам, одинаковые столбцы смежные
var1 <- c(1, 0, 1, 1, 0)
var2 <- c(1, 1, 1, 1, 1)
var3 <- c(0, 0, 1, 1, 0)
var4 <- c(0, 0, 1, 1, 0)
var5 <- c(1, 1, 0, 0, 0)
dat <- data.frame(var1,var2,var3,var4,var5)
dat <- as.matrix(dat)
Я пытаюсь включить две команды в одну. Во-первых, я хочу сгруппировать столбцы, чтобы идентичные столбцы были объединены вместе. Во-вторых, я хочу, чтобы столбцы упорядочивались по суммам столбцов. Я могу сделать то или другое, но не то и другое.
Итак, вывод должен выглядеть следующим образом:
var2 var1 var5 var3 var4
1 1 1 0 0
1 0 1 0 0
1 1 0 1 1
1 1 0 1 1
1 0 0 0 0
Наибольшие суммы столбцов не должны быть расположены на левой стороне.
Я попытался с помощью этой команды:
csums <- dat[,order(colSums(dat,na.rm=TRUE))]
Но столбцы не группироваться по сходству. Возможно, есть способ кластеризации, основанный на сходстве, обусловленном суммой столбцов.
Благодаря очень ! Это сработало отлично. Почему у вас есть «2L», а не только «2» в настройках приложения? Кроме того, какая функция выполняет вставку и сбой? – jj987246
Похоже, что коллапс работает как вторичная процедура сортировки. Что именно означает крах = ''? – jj987246
@ jj987246 Взгляните на документацию ['apply()') (https://stat.ethz.ch/R-manual/R-devel/library/base/html/apply.html). Variadic аргументы '...' передаются в 'FUN()', что в моем решении означает, что аргумент 'collapse = ''' будет передан 'paste()'. Переходя к документации ['paste()') (https://stat.ethz.ch/R-manual/R-devel/library/base/html/paste.html), мы видим, что она требует «свернуть» параметр, который, если указан, используется для сглаживания всех элементов конечного вектора в один элемент с использованием строки 'collapse' в качестве разделителя. – bgoldst