brunch

You can make anything
by writing

C.S.Lewis

by 쩐시 Aug 14. 2021

R 프로그래밍 - 비슷한 어문1

filter&select | arrange&relocate

R을 공부하면서, 비슷한 문법들이 굉장히 헷갈린다.

예로, 변수 몇개만 출력하고 싶을 때 , filter를 써야하는지 select를 써야하는지 혼동할 때가 많다. (너무 초짜라서...익숙하지 않다)


내 생각을 정리할 겸, 두 가지 정도로 본문을 구성해보았다.

1. filter vs select

2. arrange vs relocate


1. Filter or Select


예제로 사용된 내장 데이터 " mpg "


Filter " 조건에 맞는 데이터만 추출하기 "


: 말 그대로 특정 열에 대한 데이터를 필터링 하는 것이다. 익숙한 엑셀로 비유하자면 전체 필터링을 걸었을 때 각 열마다 다른 필터링을 부여할 수 있는 것과 같다.


그래서 변수추출이 아닌, 아래 예시와 같이 특정 열에 조건을 부과하여 뽑아내는 것이다. 

ex) 자동차 제조사가 audi인 데이터만 추출/ 수학 점수가 60점이 넘는 학생들의 데이터만 추출 등


행 * 열에서 행에 영향을 미친다

차종류(변수)가 compact, subcompact, suv인 것들만 추출하라
고속도로 연비(변수) 데이터의 결측치를 제외하고 추출하라


Select " 특정 변수 추출하기 "


: 원하는 변수를 추출하는 것이다. 가장 처음 시작되는 데이터 전처리 과정이라고... 생각하면 편하다. 전체 수 많은 변수 들 중, 내가 활용할 변수들을 뽑아내는 것이다. 


보통 new_data <- raw_data로 전체 데이터에서 몇가지의 변수로 새 테이블을 만드는 경우에 자주 쓰임.


ex) mpg 전체 데이터 중 class, cty 두 개의 변수를 추출하여 새테이블을 제작/ 전체 학생 성적 테이블에서 국영수 세과목만으로 전체 평균 비교하기 등


행 * 열에서 열에 영향을 미친다

class, cty 두개의 변수들만 보고싶다
couty, ratio_child만 뽑아서 데이터를 분석하고 싶다



2. Arrange or Relocate


예제로 사용된 hflight 테이블, 4가지 변수를 뽑아 비교하겠다


Arrnage " 큰 데이터 순으로 정렬 "


이 함수는 전체 변수의 순서에 영향을 미치지 않는다. 다만, 아래와 같이 ()안에 입력한 변수들의 데이터를 내림차순으로 추출한다.


SQL의 order by(DESC())와 같다.

변수 순서에 영향을 미치지 않고, 행 순서에만 영향을 미치는 Arrange 함수


Relocate " 원하는 변수 순서대로 정렬 "


arrange와 다르게 원하는 변수들을 내 마음대로 순서를 부여한다.

데이터 정제 시 일목요연하게 변수들을 나열할 때 필요하다.


()에 입력된 변수 순서대로 추출된 것을 확인할 수 있다


작가의 이전글 R 프로그래밍 - API 반복 호출 오류
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari