와이프의 박사논문용 R 코드를 봐주다보니 INF 때문에 코드가 돌지 않아 애를 먹고 있었다.
INF는 무한대를 뜻하는데 이값을 특정 코드의 가중치로 주려다가 문제가 된 것 같았다.
문제 해결방법은
1. 무한대가 나오지 않도록 가중치 계산 조건을 바꾸거나
2. 무한대의 값을 큰 값으로 대차시키는 것
이었는데, 1번으로는 문제를 해결할 수 없어 2번 방법으로 문제를 해결했다.
와이프는 lapply(조건값, function(x), 1/x^2) 함수를 사용하였는데
여기서 1/x^2의 일부값이 INF로 리턴되어 문제가 있었다.
그래서 아래와 같이
lapply(조건값, function(x), {replace(1/x^2, is.infinite(x), 1000000)})과 같이 코드를 수정하여 문제를 해결하였다.
비슷한 문제로 infinite, na, nan값이 리턴되어 함수가 돌지 않는다면
아래와 같이,
replace(x, is.infinite(x),NA)
{ replace(x, is.infinite(x) | is.na(x), 0) }
{ replace(x, is.infinite(x) | is.na(x)|is.nan(x), 0) }를 활용하면 해결할 수 있지 않을까 생각한다.