R自组织子集

时间:2012-08-04 11:11:24

标签: r

我有一百行的矩阵。 有没有办法获得与第一行最相似的十行的子集。

res2 <- matrix(rexp(200, rate=.1), ncol=10, nrow=100)

set1 <- subset(res2, res2 >condition1)
set1[with(set1, order(condition)), ]
set2 <- head(set1,10)  

1 个答案:

答案 0 :(得分:4)

也许:

生成数据:

set.seed(101)
res2 <- matrix(rexp(200, rate=.1), ncol=10, nrow=100)

计算距离矩阵。这是非常低效的,因为我们计算成对距离的所有,但它有效编码且易于使用,并且您有很多距离度量选择(请参阅?dist,查找{ {1}})。对于这个尺寸问题,它非常快。

method

您会注意到第一行的第一个元素(第1行与其自身之间的距离)的等级为1,其值(dd <- dist(res2) rr <- rank(as.matrix(dd)[1,]) )为零。所以我们现在需要的是具有接下来十个最小距离的行......

as.matrix(dd)[1,1]