컴퓨터에서 가장 많이 사용하는 AND, OR, NOT 연산자에 대해 다루어 보도록 하겠습니다.
이 연산자들은 매우 자주 사용하므로 꼭 알고 계셔야합니다.
R뿐만이 아니라, 다른 프로그래밍 언어에서도 공통적으로 사용합니다.
AND연산자는 '그리고' 의 의미를 지닙니다. 두 개의 값이 모두 TRUE여야지만 TRUE를 반환합니다.
T & T ## AND
T & F
F & F
OR연산자는 '또는'의 의미를 지닙니다. 두 개의 값중 하나 이상 TURE값이 있으면 TRUE를 반환합니다.
T | T ##OR
T | F
F | F
NOT연산자는 '반대'를 의미합니다. TRUE값이 들어오면 FALSE, FALSE값이 들어오면 TRUE값을 반환합니다.
!T ## NOT
!F
이제 조금 더 직관적인 이해를 돕기 위해 예를 들어보겠습니다.
아래와 같이 문자형 벡터를 선언하고, 강아지가 들어간 글자와 2가 들어간 글자를 찾도록 하겠습니다.
이전에서 다루었듯이, str_detect함수를 이용해서 추출 할 수가 있죠.
x<-c("강아지","고양이","강아지2","고양이2","강아지3","고양이3")
str_detect(x,"강아지")
str_detect(x,"2")
x[str_detect(x,"강아지")]
x[str_detect(x,"2")]
여기서 '강아지'라는 글자와 '2'가 모두 들어간 글자를 뽑고싶다면 & 연산자를 통해 가져올 수 있고, '강아지' 또는 '2'가 들어간 글자를 가져오고 싶다면 | 연산자를 통해 가져올 수 있습니다.
x[str_detect(x,"강아지") & str_detect(x,"2")]
x[str_detect(x,"강아지") | str_detect(x,"2")]
조금 더 응용해서, '강아지'와 '2'가 둘다 들어간 것만 빼고 뽑고싶다면 &연산자와 !연산자를 이용 할 수 있겠죠?
여기서 아래 코드와 같이 ( ) 로 꼭 묶어 주셔야합니다.
x[!(str_detect(x,"강아지") & str_detect(x,"2"))]
( ) 로 묶지 않고 아래 코드처럼 사용하시면 '강아지'가 아니고 '2'가 들어간 것을 추출하라는 의미를 지니게 됩니다.
그래서 고양이 2를 출력하게 됩니다.
x[!str_detect(x,"강아지") & str_detect(x,"2")] # 강아지가 아니고 숫자 2가 들어간 것
이처럼 연산자를 활용하면 자신이 원하는 조건에 따라 특정 객체를 추출할 수 있습니다.
'R프로그래밍' 카테고리의 다른 글
R프로그래밍 - 문자열 대체 함수 gsub [], () <> 없애기 (1) | 2020.07.03 |
---|---|
R프로그래밍 - NA, Inf, -Inf 데이터 찾는법 (0) | 2020.07.02 |
R프로그래밍 - 현재 날짜 또는 시간 가져오는 함수 Sys.time / Sys.Date (0) | 2020.07.02 |
R프로그래밍 - 코드 실행 시키지 않게 유지시키는 Sys.sleep 함수 (0) | 2020.07.02 |
R프로그래밍 - 복원추출 / 비복원추출 (sample 함수) (0) | 2020.07.02 |
댓글