【发布时间】:2016-11-22 09:58:19
【问题描述】:
我有 4000 列的 2000 行数据。我要做的是将每一行与其余行进行比较,看看它们在不同列/总列方面有多相似。
到目前为止我所做的如下:
for (i in 1:nrow(data))
{
for (j in (i+1):nrow(data))
{
mycount[[i,j]] = length(which(data[i,] != data[j,]))
}
}
它有2个问题,j不是从i+1开始的(这可能是一个基本错误)
然而,主要问题是它消耗的时间,它需要很长时间......
有人可以建议一种更合适的方法来获得相同的结果,结果是每行与其他行的相似度百分比吗?
这是一个数据示例以及我想要实现的目标:
输出应该是这样的:
mycount[1,2] = 2 (S# and var3 columns are different)
mycount[1,3] = 2 (S# and var1 columns are different)
mycount[1,4] = 2 (S# and var4 columns are different)
mycount[2,3] = ...
mycount[2,4] = ...
mycount[3,4] = 3 (S#, var1 and var 4 are different)
【问题讨论】:
-
所以你想将每一行与它正下方的行进行比较,看看它是否相同?
-
不是从i+1开始是因为
i+1:nrow(data),读作i + 1:nrow(data)需要加括号:(i+1):nrow(data)。 -
你能加一个reproducible example吗?
-
@sebastian-c;不只是下面的那一行,而是剩下的所有行
-
@MarijnStevering 谢谢,更正了那个
标签: r performance compare similarity