admin write
blogblogblogbloglocation loglocation logtag listtag listguest bookguest book
rss feed

와이프의 박사논문용 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) }를 활용하면 해결할 수 있지 않을까 생각한다.