주어진 셀이 NA이고 적어도 존재한다면 인덱스가 참인 매트릭스에서 NA 값의 위치를 나타내는 인덱스를 얻고 싶습니다 그 전후의 하나의 비 NA 값. 예를 들어, 다음의 행렬매트릭스 컬럼의 "가운데"에서만 NA를위한 위치를 얻으십시오
[,1] [,2] [,3] [,4]
[1,] NA 1 NA 1
[2,] 1 NA NA 2
[3,] NA 2 NA 3
에게 있어야 되돌아 온다 TRUE 인덱스 값만 주어 [2,2].
내가 원하는 작업을위한 간단한 표현이 있습니까? 필자는 열을 반복하고 min(which(!is.na(x[,i])))
과 같은 것을 사용하여 각 열의 첫 번째 비 NA 값을 찾은 다음 모든 값을 FALSE로 설정하고 최대 값 이후의 모든 값을 동일하게 설정해야합니다. 이렇게하면 앞과 뒤의 NA 값을 선택하지 않습니다. 그러나 이것은 약간 지저분 해 보입니다. 따라서 루프없이이 작업을 수행하는 명확한 표현식이 있는지 궁금합니다.
EDIT 유효하려면 NA 값은 열 안의 어딘가에 있으면서 그 값의 앞뒤에 비 어플라이언스 값이 있어야하지만 인접하지 않아도됩니다. 예를 들어, 열이 c (NA, 3, NA, NA, NA, 4, NA)로 정의 된 경우 3, 4 및 5 위치에있는 NA를 찾을 수 있습니다. 비 NA 값.
[2,3]도 반환하지 않아야합니까? – daroczig
daroczig - 아니요, 그 전후에 비 NA 값이 없기 때문입니다. – Abiel
감사합니다. 더 신중하게 질문을 읽어야합니다. 나는 당신의 세부 사항을 기반으로 한 벡터화 된 대답을 만들려고 노력했다. – daroczig