Dplyr에서 여러 조건으로 select_if를 사용하는 방법


dplyr 패키지의 select_if() 함수와 함께 다음 기본 구문을 사용하여 여러 조건 중 하나를 충족하는 데이터 프레임의 열을 선택할 수 있습니다.

 df %>% select_if( function (x) condition1 | condition2)

다음 예에서는 이 구문을 실제로 사용하는 방법을 보여줍니다.

예제 1: 클래스 유형에 select_if() 사용

다음 코드는 select_if() 함수를 사용하여 문자 또는 숫자 클래스 유형이 있는 데이터 프레임의 열을 선택하는 방법을 보여줍니다.

 library (dplyr)

#create data frame
df <- data. frame (team=c('A', 'B', 'C', 'D', 'E'),
                 conference=as. factor (c('W', 'W', 'W', 'E', 'E')),
                 points_for=c(99, 90, 86, 88, 95),
                 points_against=c(91, 80, 88, 86, 93))

#select all character and numeric columns
df %>% select_if( function (x) is. character (x) | is. numeric (x))

  team points_for points_against
1 A 99 91
2 B 90 80
3 C 86 88
4 D 88 86
5 E 95 93

한 문자 열( team )과 두 개의 숫자 열( points_forpoints_against )은 반환되지만 요인 열( conference )은 반환되지 않습니다.

예제 2: 클래스 유형 및 열 이름과 함께 select_if() 사용

다음 코드는 select_if() 함수를 사용하여 요인 클래스 유형 또는 points_for 열 이름이 있는 데이터 프레임의 열을 선택하는 방법을 보여줍니다.

 library (dplyr)

#create data frame
df <- data. frame (team=c('A', 'B', 'C', 'D', 'E'),
                 conference=as. factor (c('W', 'W', 'W', 'E', 'E')),
                 points_for=c(99, 90, 86, 88, 95),
                 points_against=c(91, 80, 88, 86, 93))

#select all factor columns and 'points_for' column
df %>% select_if( function (x) is. factor (x) | all(x == .$points_for))

  conference points_for
1 W 99
2W 90
3 W 86
4 E 88
5 E 95

단일 요소 열과 points_for 라는 레이블이 붙은 열이 반환됩니다.

참고 : | 기호는 R의 논리적 “OR” 연산자입니다. |를 원하는 만큼 자유롭게 사용해 보세요. 세 개 이상의 조건을 사용하여 열을 선택하려고 하기 때문입니다.

추가 리소스

다음 튜토리얼에서는 dplyr의 다른 일반적인 기능을 사용하는 방법을 설명합니다.

dplyr에서 across() 함수를 사용하는 방법
dplyr에서 relocate() 함수를 사용하는 방법
dplyr에서 Slice() 함수를 사용하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다