所以我明白,mapply將以元素順序逐步通過一個數組(或一系列數組) - 我想知道是否有辦法阻止它在某些參數上執行此操作。讓我進一步解釋與Mapply掙扎
我有一組數據點,X和Y座標... X1 X2 ... Xn和Y1 Y2 ... Yn 我有一組中心,X座標和Y座標... Cx1,Cx2,Cx3和CY1中,Cy,Cy3的 對於每個數據點,我想找出哪個「中心」,它是最接近...(集羣匹配) 道歉利用中心的英語版
我有一個工作函數需要X座標和Y座標以及中心和距離以及最近的中心的距離
assignCentre <- function (x1, y1, xcentres, ycentres) {
centredists <- mapply(pointDistance, x1, y1, xcentres, ycentres)
nearcentre <- which(centredists == min(centredists))[1]
return(list(nearcentre, centredists[nearcentre]))
}
pointDistance <- function (x1, y1, x2, y2) {
xdist <- (x2 - x1)^2
ydist <- (y2 - y1)^2
return(sqrt(xdist + ydist))
}
這裏的問題,如果我嘗試以下方法: mapply(assignCentre,xcoords,ycoords,xcentres,ycentres) 因爲基本上它運行
assignCentre(X1,Y1,CX1,CY1)
失敗assignCentre(x2,y2,CX2中,Cy)
assignCentre(X3,Y3,CX3的Cy3)
什麼,我希望它運行的是:
assignCentre(X1,Y1,(CX1,CX2,CX3),(CY1中,Cy,Cy3標記))
assignCentre(X2,Y2,(CX1,CX2,CX3),(CY1中,Cy,Cy3標記))
assignCentre(X3,Y3,(CX1,CX2,CX3),(CY1中,Cy,Cy3的))
...
...
assignCentre(XN,YN, (Cx1,Cx2,Cx3),(Cy1,Cy2,Cy3))
任何想法,我可以得到mapply剝離xcoords和ycoords,但離開中心座標? - 或者我應該只使用for循環?