Как эффективно сравнивать элементы элемента по элементу в R? Ниже приведен код, но он довольно медленный.эффективное сравнение элементов списка в списке в R
Контекст: моя фактическая проблема заключается в нахождении изоморфизмов между связными компонентами графа. Граф имеет ~ 500k вершин и ~ 200k подключенных компонентов. Однако все графические данные можно игнорировать. Я полагаю, что подобный вопрос заключается в том, как найти элементы вектора, равные.
Интуиция для кода ниже: последовательно по сравнению каждый элемент списка с предшествующими элементами (уже с учетом совпадения, найденные ранее)
g=graph.edgelist(m,directed=T)
dg <- decompose.graph(g, mode = c("weak"))
x=1
for(i in 2:length(dg)){
print(i)
a=1
for(j in unique(x[1:i-1])){
#print(j)
if(graph.isomorphic(dg[[i]],dg[[j]])==T){
x[i]=j
a=0
break
}
if(a==1) x[i]=i
#print(dg[i])
}
}