select(), filter(), arrange(), pipeline (예제 포함)

 

이 튜토리얼에서는 다음에 대하여 학습한다.

 

dplyr 라이브러리는 데이터 세트의 자료들을 관리하는데 유용한 함수를 많이 포함하고 있다. 이 튜토리얼을 통해 travel_times 데이터 세트를 사용할 것이다. 이 데이터 세트는 집과 직장 사이의 운전자에 의한 여행 소요시간 정보를 수집한 것이다. 데이터 세트에는 다음의 변수를 포함하여 총 14개의 변수가 있다 :

 

이 데이터 세트에서 약 200개의 관측치를 가지고 있으며, 월요일에서 금요일 사이에 자동차 이동을 포함한다.

우선 다음과 같은 작업을 수행해야 한다.

dplyr의 편리한 한 가지 특징은 glimpse() 함수이다. 이 함수는 str()보다 개선된 것이다. 우리는 데이터 세트의 구조를 살펴보고 어떤 조작이 필요한지 결정하기 위해 glimpse() 함수를 이용할 수 있다.

결과 :

This is obvious that the variable Comments needs further diagnostic. The first observations of the Comments variable are only missing values.

이는 Comments 변수는 추가 진단을 필요로 하는 것이 분명하다. Comments 변수의 관측치들은 결측치들 뿐이다.

 

코드 설명 :

결과 :

 

select()

우리는 select() 함수 먼저 살펴보기로 한다. 모든 변수가 필요한 것은 아니며, 좋은 관행은 당신이 필요하다고 생각하는 변수만을 선택하는 것이다.

우리는 181건의 결측치를 가지고 있으며, 이는 데이터 세트의 90%에 달한다. 이것들을 제외하기로 결정하면 분석을 계속할 수 없을 것이다.

다른 가능성은 select() 함수를 이용하여 Comment 변수를 제거하는 것이다.

우리는 select()을 이용해 다양한 방법으로 변수를 선택할 수 있다. 첫 번째 인수는 데이터 세트이다.

세 번째 방법을 사용하여 Comments 변수를 제외할 수 있다.

결과 :

 

결과 :

원 데이터 세트는 14개의 열을 갖고 있는 반면, step_1_df 변수는 13개의 열을 갖고 있다.

 

filter()

flter() 함수는 기준을 따르는 관측지를 유지하는데 도움이 된다. filter() 함수는 select() 함수와 똑같이 작동하며, 먼저 데이터 프레임을 그 다음에 컴마론 구분된 조건을 기술한다 :

인수 :

 

단일 기준

우선 factor 변수의 각 수준 내의 관측치 수를 셀 수 있다.

코드 설명 :

결과 :

table() 함수는 105번의 운행은 GSK로 가고, 100번은 Home으로 가고 있음을 표시한다.

데이터를 필터링하여 105개의 관측치가 있는 데이터 세트와 100개의 관측치가 있는 데이터 세트를 반환할 수 있다.

결과 :

 

결과 :

 

복수 기준

한 개 이상의 기준으로 데이터 세트를 필터링할 수 있다. 예를 들어, 목적지가 Home이고 Wednesday에 발생한 관측치를 추출할 수 있다.

결과 :

23개의 관측치가 이 기준에 대응된다.

 

pipeline

데이터셋을 생성하려면 다음과 같은 많은 작업이 필요하다 :

 

dplyr 라이브러리는 파이프라인이라고 하는 실용적인 연산자 %>%를 함께 제공한다. 파이프라인은 사용하면 조작이 깨끗하고 빠르며 오류 발생이 최소화된다.

이 연산자는 하드 드라이브로 중간 단계를 저장하지 않고도 단계를 수행하게 해 주는 코드이다. 위에서 본 사례로 돌아가면 관심 변수를 선택하여 필터링할 수 있다. 다음의 세 가지 단계가 있다 :

 

결과 :

 

그것은 특히 많은 조작을 수행하기에는 편리한 방법이 아니다. 특히 많은 단계마다 거치는 상황의 경우는 더 그렇다. 환경은 결국 많은 오브젝트를 저장하는 결과를 가져온다.

대신 파이프라인 연산자 %>%를 사용합시다. 우리는 단지 처음에 사용되는 데이터 프레임을 정의하기만 하면 되고 모든 과정은 거기에서 흘러갈 것이다.

파이프라인의 기본 구문 :

인수 :

 

위에 열거한 단계를 따라 첫 번째 파이프를 작성할 수 있다.

결과 :

우리는 파이프라인 연산자로 놀라운 데이터 세트를 생성할 준비가 되어 있다.

 

arrange()

이전 tutorial에서는 sort() 함수를 사용하여 값을 정렬하는 방법에 대해 학습하였다. dplyr 라이브러리는 정렬 함수가 있다. 파이프라인과 함께 매력적으로 작용한다. arrange() 함수는 오름차순(기본값) 또는 내림차순으로 한 개 또는 여러 행의 순서를 변경할 수 있다.

우리는 목적지(GoingTO)별로 거리(Distance)를 정렬할 수 있다.

결과 :

 

요약

아래 표에 튜토리얼 중에 학습한 모든 작업을 요약하였다.

함수목적코드설명
glimpse()df의 구조 확인glimpse(df)str()과 동일
select()변수의 선택/제거select(df, A, B ,C)변수 A, B, C의 선택
  select(df, A:C)A에서 C까지의 모든 변수 선택
  select(df, -C)C 제외
filter()한 개 혹은 여러 조건으로 df를 필터filter(df, condition1)한 조건
  filter(df, condition1,condition2)두개의 조건
arrange()데이터 세트를 하나 또는 여러 변수로 정렬arrange(A)변수 A의 오름차순 정렬
  arrange(A, B)변수 A, B의 오름차순
  arrange(desc(A), B)변수 A는 내림차순, 변수 B는 오름차순
%>%각 단계별로 파이프라인 생성step 1 %>% <br />step 2 %>% <br />step 3