IT | Computer/R

R 언어 통계 프로그래밍: Subsetting

바람난후제 2016. 3. 31. 00:07
728x90
반응형

1. Subset 추출 operator

1) [ : 같은 class의 object를 반환

2) [[ : dataframe이나 list의 요소를 추출하는데 사용

3) $ : 특정 이름에 의해 해당 list나 dataframe에서 해당 요소를 추출하는데 사용

 

2. List

1) Subsetting을 List 형태로 설정할 수 있고, 아래 예시처럼 single bracket [, double bracket [[, dollar $ 등을 사용하여 데이터를 출력할 수 있다.

2) [[ operator는 computed index를 취급하여 저장된 값으로 처리되고, $는 문자 그대로의 이름을 반영한다.

- 위의 예시처럼, name을 쓴 경우 "foo"가 변환되어 x[["foo"]]의 형태로 출력된다.

- $name의 경우 $"foo"가 되어 문법에도 맞지 않고 지정된 index도 없다.

- $foo의 경우 list 내에 설정된 foo 가 있기 때문에 해당되는 값이 출력된다.

3) [[는 정수의 배열 값도 처리할 수 있다.

- c(1,3)의 경우, 1번째 subset에 3번째 값으로 a의 [1,2,3,4] 중에서 3이 출력 되었다.

- c(2,2)의 경우, 2번째 subset에 2번째 값으로 b의 [3.2, 3.4] 중에서 3.4가 출력 되었다.

 

3. Matrices

1) Matrix가 subset으로 사용될 수 있고 (i,j) 형태의 배열의 순서로 설정된다.

- (i,j) 형태로 하여 2행 1열에 있는 2를 출력할 수 있다.

- (i, ) 형태로 1행에 있는 모든 수를 출력할 수 있다.

- ( ,j) 형태로 2열에 있는 모든 수를 출력할 수 있다.

2) 기본적으로 matrix는 length 1의 vector 형태로 출력되는 것이 기본이나, drop = FALSE를 설정함으로 matrix 배열 형태로 출력이 가능하다.

- drop=FALSE를 쓰면서 처음 x를 출력한 것과 같이 matrix 형태로 출력할 수 있다.

 

4. 부분 일치 (Partial Matching)

1) [[, $에서는 이름이 너무 길거나 어려운 경우 Partial Matching을 허용해주고 있다.

- abcdefghij가 길어서 $a만으로 해당 리스트 출력이 가능하다.

- [[의 경우, exact = FALSE를 통해서 Partial Matching을 허용해주고 있다.

 

5. NA 값 제거

1) NA값은 아래의 방법을 통해 일반적으로 제거할 수 있다.

- is.na(x)를 통해서 NA인 경우 TRUE가 저장되게 된다.

- TRUE/FALSE를 반대로 바꾸어 NA값을 제거하고 출력할 수 있다.

2) complete.cases(x) 활용

- complete.case(x)를 통해 NA의 여부를 파악할 수 있고, 해당 결과를 이용하여 NA를 제외한 값을 출력할 수 있다.

728x90
반응형