데이터를 만듭시다.

name <- c("철수", "영희", "길동")
age <- c(21, 20, 31)
gender <- factor(c("M", "F", "M"))
character <- data.frame(name, age, gender)

성별이 여자 데이터를 가져오고 싶다면

character[(character$gender == "F"), ];
##   name age gender
## 2 영희  20      F

그럼 성별이 여자가 아닌 데이터를 가지고 오고싶다면 어떻게 할까요?

직관적으로 -로 하면 어떻게 될까요??

character[-(character$gender == "F"), ];
##   name age gender
## 2 영희  20      F
## 3 길동  31      M

결과는 X. 왜 그럴까요? 이유는 논리연산 때문입니다.

(character$gender == "F");
## [1] FALSE  TRUE FALSE
!(character$gender == "F");
## [1]  TRUE FALSE  TRUE

위처럼 해야 TRUE, FALSE로 올바르게 가져오는데

-(character$gender == "F");
## [1]  0 -1  0
character[c(0,-1,0), ];
##   name age gender
## 2 영희  20      F
## 3 길동  31      M

-를 사용하면 1번째 데이터를 빼는 것처럼 나오기 때문에 의도된게 안되네요;;;

결론: 성별이 여자가 아닌 데이터를 가져오고 싶다면 논리연산을 씁시다. (논리연산 활용이 늘었네요)

character[!(character$gender == "F"), ];
##   name age gender
## 1 철수  21      M
## 3 길동  31      M