【发布时间】:2016-09-03 03:04:59
【问题描述】:
所以目的是通过取距离来比较每个 ID 和其他 ID。此外,某些 ID 可能因属于同一组而相关,这意味着如果它们相关,则无需比较它们。
考虑以下数据框 Df
ID AN AW Group
a white green 1
b black yellow 1
c purple gray 2
d white gray 2
以下代码有助于实现此结果(来自问题:R Generate non repeating pairs in dataframe):
ids <- combn(unique(df$ID), 2)
data.frame(df[match(ids[1,], df$ID), ], df[match(ids[2,], df$ID), ])
#ID AN AW ID2 AN2 AW2
a white green b black yellow
a white green c purple gray
a white green d white gray
b black yellow c purple gray
b black yellow d white gray
c purple gray d white gray
我想知道是否可以不计算某些计算以获得这个答案:
#ID AN AW Group ID2 AN2 AW2 Group2
a white green 1 c purple gray 2
a white green 1 d white gray 2
b black yellow 1 c purple gray 2
b black yellow 1 d white gray 2
意思是我可以避免这种计算:
#ID AN AW Group ID2 AN2 AW2 Group2
a white green 1 b black yellow 1
c purple gray 2 d white gray 2
如果我比较组,我可以进行子集化,但这意味着更多的计算时间,因为数据框很大,并且组合遵循n*(n-1)/2
这可能吗?还是我必须进行所有组合,然后将同一组之间的比较子集出来?
【问题讨论】:
标签: r dataframe combinations