【发布时间】:2016-11-15 06:00:56
【问题描述】:
我有一个由二分值组成的数据集。这是一个非常大的数据集,但这里有一个例子:
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))]
但列不按相似性聚类。也许有一种基于相似度的聚类方法,以列总和为条件。
【问题讨论】: