我有来自作为S4对象类型的包(apcluster)的输出。其中一个成员是确定找到的每个群集成员的列表。我想按长度(最大的群集)对该列表进行排序。
我的代码现在看起来像
ap.result <- apcluster(args)
clusters <- ap.result@cluster #list of lists
然后我可以clusters
访问clusters[[i]]
的个别成员,但订单是半随机的。如果我unlist(clusters)
那么我得到一个向量而不知道它来自哪个子列表。
如何将最长成员列表排序的ap.result@cluster
排序到最短的成员列表?
答案 0 :(得分:5)
该软件包的1.3.4版本已于今日在CRAN上发布(Windows和Mac OS X二进制文件可能需要1-2天才能上线)。受Ian请求的启发,新版本包含一个sort()方法,用于根据给定的排序标准重新排列集群。伊恩问题的解决方案现在如下:
sort(ap.result, decreasing=TRUE, sortBy="size")
答案 1 :(得分:4)
根据评论,这是解决方案:
clusters[order(sapply(clusters,length),decreasing=T)]