점의 xy 좌표가 있고 평균 점에 대한 사용 거리를 만들고 싶습니다. 내 데이터는 qq
이름 난 dist
기능을 사용하여 거리 행렬을 얻을 수있다조건부 거리가있는 평균 xy 점
qq
X Y
2 4237.5 4411.5
3 4326.5 4444.5
4 4382.0 4418.0
5 4204.0 4487.5
6 4338.5 4515.0
mydist = as.matrix(dist(qq))
2 3 4 5 6
2 0.00000 94.92102 144.64612 83.0557 144.61414
3 94.92102 0.00000 61.50203 129.8278 71.51398
4 144.64612 61.50203 0.00000 191.0870 106.30734
5 83.05570 129.82777 191.08702 0.0000 137.28256
6 144.61414 71.51398 106.30734 137.2826 0.00000
내가하고 싶은 것은 특정 임계 값이 예를 들어 우리가 80 만 쌍으로 거리를 사용할 수 있음을 가까운 평균 점이다 그 한도 아래로 떨어지는 것은 3-4와 3-6입니다. 문제는 원래 행렬과 평균 XY로 돌아갈 방법 인 3 ~ 4 쌍의 한 지점과 3-6 쌍의 다른 (구 점 3,4 버리고 6) 여기
가 dput
의를 만들기 위해 좌표 내 data.frame 수정 코드와 함께 제공의 일부를 사용
dput(qq)
structure(list(X = c(4237.5, 4326.5, 4382, 4204, 4338.5), Y = c(4411.5,
4444.5, 4418, 4487.5, 4515)), .Names = c("X", "Y"), row.names = 2:6, class = "data.frame")
UPDATE
의 나는 3-4 장소 3-6 장소에서 교체 할 필요가 2 포인트를 획득. 이것은 내가 문제를 정확하게 이해하고 있다면, 이것은 당신을 위해 그것을해야한다고 생각 3, 4, 6은 전분기에서 사라 할 것이다이 두 지점이
pairs <- which(as.matrix(dist(qq)) < 80 & upper.tri(as.matrix(dist(qq))), arr.ind = T)
t(apply(pairs,1,function(i) apply(qq[i,],2,mean)))
X Y
3 4354.25 4431.25
3 4332.50 4479.75
내가 원하는 것을하지 않습니다. 신청 전화의 희미한 정도가 2,16이고 예상되는 출력이 4,2 –
이어야합니다. 편집을 확인하면 배포판 결과에 캐스팅 문제가 있습니다. 두 개의 다른 숫자로 3-6과 6-3 (동일한 결과)을 받으려는 경우, '& upper.tri (...)'을 제거해야합니다. – Adam
우리는 점점 더 가까이에 있지만 점점 더 멀어지고 있다고 생각합니다. , 내 업데이트를 확인하십시오 –