R에서 "not in" 연산자를 사용하는 방법(예제 포함)


다음 기본 구문을 사용하여 R의 값 목록에 없는 모든 요소를 선택할 수 있습니다.

 ! (data %in% c(value1, value2, value3, ...))

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

예 1: 벡터에 “NOT IN”을 사용하는 방법

다음 코드는 특정 값 목록에 없는 R의 벡터 값을 모두 선택하는 방법을 보여줍니다.

 #define numeric vector
num_data <- c(1, 2, 3, 3, 4, 4, 5, 5, 6)

#display all values in vector not equal to 3 or 4
num_data[ ! (num_data %in% c(3, 4))]

[1] 1 2 5 5 6

3 또는 4와 같지 않은 모든 값이 출력에 표시됩니다.

동일한 구문을 사용하여 특정 문자 목록에 없는 벡터의 모든 요소를 선택할 수 있습니다.

 #define vector of character data
char_data <- c('A', 'A', 'A', 'B', 'B', 'C', 'C', 'D', 'D', 'D')

#display all elements in vector not equal to 'A', or 'C'
char_data[ ! (char_data %in% c('A', 'C'))]

[1] “B” “B” “D” “D” “D”

“A” 또는 “C” 와 같지 않은 모든 값이 출력에 표시됩니다.

예 2: 데이터 프레임에 “NOT IN”을 사용하는 방법

다음 코드는 R에서 특정 열이 특정 값과 같지 않은 데이터 프레임의 모든 행을 선택하는 방법을 보여줍니다.

 #create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'D'),
                 points=c(77, 81, 89, 83, 99, 92, 97),
                 assists=c(19, 22, 29, 15, 32, 39, 14))

#view data frame
df

  team points assists
1 A 77 19
2 A 81 22
3 B 89 29
4 B 83 15
5 C 99 32
6 C 92 39
7 D 97 14

#select all rows where team is not equal to 'A' or 'B'
subset(df, ! (team %in% c('A', 'B')))

  team points assists
5 C 99 32
6 C 92 39
7 D 97 14

팀 열에 “A” 또는 “B”가 없는 행은 모두 반환됩니다.

비슷한 구문을 사용하여 특정 열이 특정 숫자 값과 같지 않은 모든 행을 선택할 수도 있습니다.

 #create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'D'),
                 points=c(77, 81, 89, 83, 99, 92, 97),
                 assists=c(19, 22, 29, 15, 32, 39, 14))

#view data frame
df

  team points assists
1 A 77 19
2 A 81 22
3 B 89 29
4 B 83 15
5 C 99 32
6 C 92 39
7 D 97 14

#select all rows where team is not equal to 'A' or 'B'
subset(df, ! (points %in% c(89, 99)))

  team points assists
1 A 77 19
2 A 81 22
4 B 83 15
6 C 92 39
7 D 97 14

포인트 열에서 89 또는 99와 같지 않은 모든 행이 반환됩니다.

추가 리소스

R에서 %in% 연산자를 사용하는 방법
R에서 데이터 프레임을 부분 집합하는 방법
R에서 목록을 부분집합하는 방법

의견을 추가하다

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