R 완전 기초

R을 완전 기초부터 시작합니다


수강중

13. 논리

비교 연산자

== : 같다

!= : 다르다

> : 크다

>= : 크거나 같다

< : 작다

<= : 작거나 같다

특정 조건의 데이터만 뽑기 (filtering)

subset() 함수를 이용해 조건에 맞는 데이터만 선택 할 수 있다. subset(데이터셋, 변수이름 == 숫자나 문자)

매출월이 1월인 데이터만 뽑기

=이 아닌 ==임 주의하기

subset(매출, 매출월 == 1)
    매출월 요일 점포 성별 구매건수
1   1      월   a    남   21451   
2   1      화   b    여   24922   
3   1      수   c    남    8835   
4   1      목   d    여   13720   

매출월이 1월인 데이터만 뽑혔음을 확인 할 수 있다.

요일이 월요인인 데이터만 뽑기

숫자가 아닌 문자열은 항상 ''안에 넣어줘야 한다

subset(매출, 요일 == '월')
     매출월 요일 점포 성별 구매건수
1    1      월   a    남   21451   
8    1      월   h    여   10457   
15   1      월   o    남   49704   
22   1      월   g    여    3414   

요일이 월요인인 데이터만 뽑혔음을 확인 할 수 있다.

성별이 여성인 데이터만 뽑기

subset(매출, 성별 == '여')
     매출월 요일 점포 성별 구매건수
2    1      화   b    여   24922   
4    1      목   d    여   13720   
6    1      토   f    여   43319   
8    1      월   h    여   10457   

성별이 여성인 데이터만 뽑혔음을 확인 할 수 있다.

구매건수가 100미만인 데이터만 뽑기

subset(매출, 구매건수 < 100)
     매출월 요일 점포 성별 구매건수
783   4     토   c    남   79      
868   5     일   m    여    9      
1610  8     일   e    여   93      
1960 10     일   j    여   40      

구매건수가 100미만인 데이터만 뽑혔음을 확인 할 수 있다.

구매건수가 49900초과인 데이터만 뽑기

subset(매출, 구매건수 > 49900)
     매출월 요일 점포 성별 구매건수
728   4     일   h    여   49953   
1788  9     수   c    여   49976   
1939 10     일   d    남   49910   
2371 12     금   a    남   49936   

구매건수가 49900초과인 데이터만 뽑혔음을 확인 할 수 있다.

논리에 대한 설명

매출월 == 1, 요일 == '월', 성별 == '여', 구매건수 < 100, 구매건수 > 49900 모두 참과 거짓을 따지는 조건으로서 논리에 해당된다.

참과 거짓

TRUET : 참

FALSEF : 거짓

같다/ 다르다

1 == 1 입력한다. 1 과 1 은 동일하기 때문에 참인 논리이고 TRUE가 나온다.

1 == 1

1 == 2 입력한다. 1 과 2는 다르기 때문에 거짓인 논리FALSE가 나온다.

1 == 2

1 != 2 입력한다. 1 과 2 은 다르기 때문에 참인 논리이고 TRUE가 나온다.

1 != 2

1 != 1 입력한다. 1 과 1은 동일하기 때문에 거짓인 논리FALSE가 나온다.

1 != 1

크다/작다

2 > 1 입력한다. 참인 논리이고 TRUE가 나온다.

2 > 1

1 > 2 입력한다. 거짓인 논리FALSE가 나온다.

1 > 2

1 < 2 입력한다. 참인 논리이고 TRUE가 나온다.

1 < 2

2 < 1 입력한다. 거짓인 논리FALSE가 나온다.

2 < 1

크거나 같다/ 작거나 같다

2 >= 1 입력한다. 참인 논리이고 TRUE가 나온다.

2 >= 1

1 >= 2 입력한다. 거짓인 논리FALSE가 나온다.

1 >= 2

1 >= 1 입력한다. 참인 논리이고 TRUE가 나온다.

1 >= 1

2 <= 3 입력한다. 참인 논리이고 TRUE가 나온다.

2 <= 3

논리 연산자

참과 거짓을 따지는 조건이 두가지 이상일 때, 논리 연산자를 이용한다.

& : and , 두가지 조건을 모두 만족

| : or , 두가지 조건중 어느 하나라도 만족

%in% : 벡터의 값 존재 여부

! : 부정

매출월이 1월이고 구매건수가 40000 초과하는 데이터 뽑기

&을 사용하여 두 조건이 모두 TRUE인 데이터만 출력이 된다.

subset(매출, 매출월 == 1 & 구매건수 > 40000)
    매출월 요일 점포 성별 구매건수
6   1      토   f    여   43319   
15  1      월   o    남   49704   
17  1      수   b    남   45928   
23  1      화   h    남   44846   

구매건수가 100 미만이거나 49900 초과하는 데이터 뽑기

|을 사용하여 두 조건중 어느 하나라도 TRUE인 데이터가 출력이 된다.

subset(매출, 구매건수 < 100 | 구매건수 > 49900)
     매출월 요일 점포 성별 구매건수
728   4     일   h    여   49953   
783   4     토   c    남      79   
868   5     일   m    여       9   
1610  8     일   e    여      93   

월, 화, 수요일 데이터 뽑기

%in%을 사용하여 월, 화, 수 벡터값의 존재 여부를 확인해서 TRUE인 데이터만 출력이 된다.

subset(매출, 요일 %in% c('월', '화', '수'))
     매출월 요일 점포 성별 구매건수
1    1      월   a    남   21451   
2    1      화   b    여   24922   
3    1      수   c    남    8835   
8    1      월   h    여   10457   

월,화,수요일이 아닌 데이터 뽑기

!을 사용하여 월, 화, 수 벡터값이 아닌 목,금,토,일 데이터만 출력이 된다.