我有一個數據框,nearest_neighbour,它列出了一個點的最近鄰居。因此,對於點1,第一個最近的鄰居是點2,第二個最近的鄰居是點3,依此類推。R檢查數據幀的多行是否出現相同的數字
什麼是最快的方式來循環這一點,並檢查4點是否都共享相同的最近鄰居?例如,第1點的三個最近的鄰居是2,3和4點2的最近的鄰居是1,3和4等
which.1 which.2 which.3
1 2 3 4
2 1 4 3
3 1 4 2
4 3 1 2
5 2 4 6
6 7 5 2
我可以用if語句很容易地做到這一點的只有兩個鄰國:
count <- 0
for (j in 1:length(nearest_neighbour[[1]])){
if(nearest_neighbour[[1]][nearest_neighbour[[1]][j]] == j){
count <- count + 1
}
}
然而,這個方法似乎愚蠢的超過2,因爲最終有很多if語句。