2016-10-13 5 views
-1

나는 의심의 여지를 잘 설명하려고 노력할 것입니다.소프트웨어 - 테이블 열의 개체 식별 또는보다 작음

예를 들어, 변수 X, Y, Z가있는 테이블이 있습니다. 각 변수에는 숫자 값이 있습니다.

는 그래서, 내가 이상 값을 식별하기 위해 노력하고있어

RDIST RDENS AGR BLF 
1 146 0.000  0 0.0 
2 338 0.000  0 0.0 
3 931 0.000  0 3.7 

가 있다고 가정 해 보자, 그래서 나는 dotchart을 사용했다.

그러나 지금, 각 변수에서 관찰 할 수있는 이상치가 있음을 알고 싶습니다.

list(x$BLF>3) 명령으로, 나는 TRUE 또는 FALSE 값으로 테이블을 얻을. 하지만 이상치가 2, 3, 145 번 관측 중이라는 것을 알아야합니다.

+0

윤곽선의 행 인덱스를 원합니까? 'which (x $ BLF> 3)'를 사용하십시오. – MrFlick

답변

0

@MrFlick에 동의합니다. which()이 최선의 방법입니다. 다음 단계를 수행하고 그러한 이상 치를 제거하려는 경우 x$BLF<-x$BLF[-which(x$BLF>3)]은 MrFlick이 언급 한 색인을 취하여 - 연산자를 사용하여 BLF 열에서 해당 항목을 삭제합니다. 물론 그 후에 같은 열에 다시 저장합니다. 사실, 데이터가 데이터 프레임에 저장되어있는 경우 R은 삭제 된 값을 바로 위에있는 값으로 바꿔 올바른 열 길이를 유지하기 때문에 위에 말한 것을 실제로 수행하지 마십시오!

아마처럼 NA로 특이 치를 대체하는 것이 가장 좋습니다. 아니면 그냥 x<-x[-which(x$BLF>3),] 같이 데이터 집합에서 전체 행을 제거 할 수 있습니다. 이제 쉼표가있는 이유는 직사각형 데이터 프레임을 다루는 경우 행, 열을 지정해야하므로 [row I want, column I want]처럼 그냥 삭제할 행을 지정하면됩니다. 컬럼을 지정하지 않고.

아마도 당신이 원했던 것 이상 이었지만 도움이 될 것으로 생각했습니다.

0

그게 전부 야! 둘 다 감사합니다!

지금은 각 변수에 대한 이상 값을 확인하기 만하면됩니다. 그 명령은 내 의심을 해결했다.

고맙습니다.