R 与Mapply抗争
所以我知道mapply将按元素顺序逐步遍历一个数组(或一系列数组)——我想知道是否有办法阻止它对某些参数执行此操作…。让我进一步解释 我有一组数据点,X和Y坐标为x1x2…Xn和Y1 Y2…Yn 我有一组中心,具有X和Y坐标……Cx1、Cx2、Cx3和Cy1、Cy2、Cy3 对于每个数据点,我想找出它最接近的“中心”(聚类匹配) 抱歉使用英语版的中心 我有一个工作函数,它取X坐标和Y坐标以及中心,计算出距离和最近的中心R 与Mapply抗争,r,mapply,R,Mapply,所以我知道mapply将按元素顺序逐步遍历一个数组(或一系列数组)——我想知道是否有办法阻止它对某些参数执行此操作…。让我进一步解释 我有一组数据点,X和Y坐标为x1x2…Xn和Y1 Y2…Yn 我有一组中心,具有X和Y坐标……Cx1、Cx2、Cx3和Cy1、Cy2、Cy3 对于每个数据点,我想找出它最接近的“中心”(聚类匹配) 抱歉使用英语版的中心 我有一个工作函数,它取X坐标和Y坐标以及中心,计算出距离和最近的中心 assignCentre <- function (x1, y1, x
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))
}
assigncenter如果不想迭代参数,请将它们粘贴在MoreArgs=
参数中
mapply(assignCentre, x, y,
MoreArgs=list(xcentres=xcentres, ycentres=ycentres))