데이터 가공 (=데이터 전처리(preprocessing) =데이터 핸들링 =데이터 마트(mart))
: 데이터를 분석할 때 변수를 생성하거나 변수명을 변경하고, 조건에 맞는 데이터를 추출하거나 변경하고, 데이터를 정렬하고 병합하는 일련의 과정
: 이렇게 데이터를 준비하는 과정이 실제 데이터를 분석하는 과정보다 어렵고 시간도 오래걸림.
1. 필요한 데이터 추출하기
- 전체 데이터 중에서 필요한 데이터만 추출하기
- 두가지 방법이 있음
1) 사용할 변수를 선택하는 방식
2) 원하는 조건 값에 맞는 데이터를 추출하는 방식
- 데이터 가공에 사용할 데이터 추출, 정렬, 요약, 결합 함수는 dplyr 패키지에 포함된 함수이므로 패키지를 로드한다.
library(dplyr)
- 원시데이터로 Sample1.xlsx를 사용할것이므로 readxl 패키지를 로드한다.
library(readxl)
prac <- read_excel("C:/Rstudy/sources/Sample1.xlsx")
prac
- prac 데이터 세트는 ID, 성별, 나이, 지역, 21년과 20년 AMT(이용금액)와 CNT(이용건수)가 담겨있는 20행 * 13열의 데이터이다.
1) 선택한 변수만 추출하기 : select() 함수
select() 함수 : 데이터 세트에 있는 변수 중 필요한 변수만 추출 가능 - 주로 특정 "열"을 추출할 때 사용
- 변수는 여러 변수 중 필요한 변수만 선택하여 추출할 수도 있고, 지정한 변수를 제외한 나머지 변수를 추출할 수도 있음
- 한번에 여러 변수를 추출하고 싶으면 쉼표(,) 기호를 사용한다.
- 특정 변수를 제외하고 나머지를 추출하고 싶으면 빼기(-) 기호를 사용한다.
ex) prac 데이터 세트 중 ID 변수(열)만 추출하기
> select(prac$ID)
UseMethod("select")에서 다음과 같은 에러가 발생했습니다:
클래스 "c('double', 'numeric')"의 객체에 적용된 'select'에 사용할수 있는 메소드가 없습니다
$를 사용해 구문을 작성하면 위와같은 오류가 발생
> prac %>% select(ID)
# A tibble: 20 × 1
ID
<dbl>
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
파이프연산자 %>%를 사용해 구문을 작성한다.
ex) ID, AREA, Y21_CNT 이 3개 변수를 추출하기
> prac %>% select(ID, AREA, Y21_CNT)
# A tibble: 20 × 3
ID AREA Y21_CNT
<dbl> <chr> <dbl>
1 1 서울 50
2 2 경기 25
3 3 제주 10
4 4 서울 8
5 5 서울 30
6 6 서울 1
7 7 경기 2
8 8 서울 10
9 9 서울 4
10 10 경기 17
11 11 서울 5
12 12 제주 53
13 13 경기 35
14 14 제주 15
15 15 경기 16
16 16 서울 15
17 17 경기 8
18 18 서울 5
19 19 제주 15
20 20 제주 4
ex) AREA 변수만 제외하고 나머지 추출하기
prac %>% select(-AREA)
ex) AREA, SEX, CAR_YN 제외하고 나머지 추출하기
prac %>% select(-AREA, -SEX, -CAR_YN)
2) 필요한 데이터만 추출하기 : filter() 함수
filter() 함수 : 필요한 조건을 지정해 조건에 맞는 데이터만 추출하기 (논리연산자, 조건문 사용)
ex) 연령이 20세 이상 30세 미만인 경우만 추출하기
> prac %>% filter( 20 <= AGE < 30 )
에러: 예기치 않은 '<'입니다 in "prac %>% filter( 20 <= AGE <"
## 한번에 작성하니 에러가 발생. & 연산자를 사용해 20세 이상과 30세 미만 조건을 각각 작성한다.
> prac %>% filter( 20 <= AGE & AGE < 30 )
# A tibble: 7 × 13
ID SEX AGE AREA CAR_YN Y21_AMT Y21_CNT Y21F_AMT Y21O_CNT Y20_AMT Y20_CNT
<dbl> <chr> <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 3 F 28 제주 0 275000 10 7500 3 500000 7
2 5 M 27 서울 1 845000 30 130000 11 760000 28
3 6 F 23 서울 0 42900 1 0 1 300000 6
4 9 M 20 서울 0 930000 4 50000 3 250000 2
5 18 F 29 서울 1 150000 5 7000 3 100000 5
6 19 F 27 제주 0 300000 15 150000 10 320000 27
7 20 M 27 제주 1 130000 4 38000 2 150000 30
# ℹ 2 more variables: Y20F_AMT <dbl>, Y20O_CNT <dbl>
* 조건문 데이터가 문자형(chr) 일때는 따옴표('', "")를 붙여야 알아들음.
2. 데이터 정렬하기 : arrange() 함수
- 변수를 크기순으로 정렬하기 : arrange() 함수
- 기본값: 오름차순 정렬 / 내림차순 정렬 하려면 desc() 함수를 추가적으로 사용
ex) prac 데이터세트에서 나이가 적은 순서대로 정렬하기
> prac %>% arrange(AGE)
# A tibble: 20 × 13
ID SEX AGE AREA CAR_YN Y21_AMT Y21_CNT Y21F_AMT Y21O_CNT Y20_AMT Y20_CNT
<dbl> <chr> <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 9 M 20 서울 0 930000 4 50000 3 250000 2
2 6 F 23 서울 0 42900 1 0 1 300000 6
3 5 M 27 서울 1 845000 30 130000 11 760000 28
4 19 F 27 제주 0 300000 15 150000 10 320000 27
5 20 M 27 제주 1 130000 4 38000 2 150000 30
6 3 F 28 제주 0 275000 10 7500 3 500000 7
7 18 F 29 서울 1 150000 5 7000 3 100000 5
8 17 M 30 경기 1 250000 8 70000 6 400000 10
9 16 F 32 서울 1 530000 15 380000 7 1000000 43
10 11 M 35 서울 0 150000 5 10000 3 490000 25
11 10 F 38 경기 0 520000 17 11000 10 550000 16
12 2 M 40 경기 1 450000 25 50000 10 700000 30
13 12 F 44 제주 1 1150000 53 270000 37 1150000 48
14 15 F 46 경기 1 600000 16 105000 4 1000000 20
15 8 F 47 서울 1 650000 10 45000 6 400000 7
16 1 F 50 서울 1 1300000 50 170000 25 1000000 40
17 4 M 50 서울 0 2300000 8 50000 3 2500000 3
18 14 M 55 제주 1 1050000 15 300000 5 2900000 18
19 7 F 56 경기 0 150000 2 5000 1 130000 2
20 13 F 60 경기 0 550000 35 120000 10 800000 32
# ℹ 2 more variables: Y20F_AMT <dbl>, Y20O_CNT <dbl>
ex2) 나이 많은순서대로 정렬하기
> prac %>% arrange(desc(AGE))
# A tibble: 20 × 13
ID SEX AGE AREA CAR_YN Y21_AMT Y21_CNT Y21F_AMT Y21O_CNT Y20_AMT Y20_CNT
<dbl> <chr> <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 13 F 60 경기 0 550000 35 120000 10 800000 32
2 7 F 56 경기 0 150000 2 5000 1 130000 2
3 14 M 55 제주 1 1050000 15 300000 5 2900000 18
4 1 F 50 서울 1 1300000 50 170000 25 1000000 40
5 4 M 50 서울 0 2300000 8 50000 3 2500000 3
6 8 F 47 서울 1 650000 10 45000 6 400000 7
7 15 F 46 경기 1 600000 16 105000 4 1000000 20
8 12 F 44 제주 1 1150000 53 270000 37 1150000 48
9 2 M 40 경기 1 450000 25 50000 10 700000 30
10 10 F 38 경기 0 520000 17 11000 10 550000 16
11 11 M 35 서울 0 150000 5 10000 3 490000 25
12 16 F 32 서울 1 530000 15 380000 7 1000000 43
13 17 M 30 경기 1 250000 8 70000 6 400000 10
14 18 F 29 서울 1 150000 5 7000 3 100000 5
15 3 F 28 제주 0 275000 10 7500 3 500000 7
16 5 M 27 서울 1 845000 30 130000 11 760000 28
17 19 F 27 제주 0 300000 15 150000 10 320000 27
18 20 M 27 제주 1 130000 4 38000 2 150000 30
19 6 F 23 서울 0 42900 1 0 1 300000 6
20 9 M 20 서울 0 930000 4 50000 3 250000 2
# ℹ 2 more variables: Y20F_AMT <dbl>, Y20O_CNT <dbl>
1) 중첩 정렬하기
중첩정렬: 여러 변수를 기준으로 중첩하여 정렬하는 것
- 기준이 될 변수를 쉼표(,)로 나열하여 작성하면 됨
ex) Y21_AMT 변수가 많은순으로, Y20_AMT가 많은순으로 정렬
> prac %>% arrange(desc(Y21_AMT), desc(Y20_AMT))
# A tibble: 20 × 13
ID SEX AGE AREA CAR_YN Y21_AMT Y21_CNT Y21F_AMT Y21O_CNT Y20_AMT Y20_CNT
<dbl> <chr> <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 4 M 50 서울 0 2300000 8 50000 3 2500000 3
2 1 F 50 서울 1 1300000 50 170000 25 1000000 40
3 12 F 44 제주 1 1150000 53 270000 37 1150000 48
4 14 M 55 제주 1 1050000 15 300000 5 2900000 18
5 9 M 20 서울 0 930000 4 50000 3 250000 2
6 5 M 27 서울 1 845000 30 130000 11 760000 28
7 8 F 47 서울 1 650000 10 45000 6 400000 7
8 15 F 46 경기 1 600000 16 105000 4 1000000 20
9 13 F 60 경기 0 550000 35 120000 10 800000 32
10 16 F 32 서울 1 530000 15 380000 7 1000000 43
11 10 F 38 경기 0 520000 17 11000 10 550000 16
12 2 M 40 경기 1 450000 25 50000 10 700000 30
13 19 F 27 제주 0 300000 15 150000 10 320000 27
14 3 F 28 제주 0 275000 10 7500 3 500000 7
15 17 M 30 경기 1 250000 8 70000 6 400000 10
16 11 M 35 서울 0 150000 5 10000 3 490000 25
17 7 F 56 경기 0 150000 2 5000 1 130000 2
18 18 F 29 서울 1 150000 5 7000 3 100000 5
19 20 M 27 제주 1 130000 4 38000 2 150000 30
20 6 F 23 서울 0 42900 1 0 1 300000 6
# ℹ 2 more variables: Y20F_AMT <dbl>, Y20O_CNT <dbl>
Y21_AMT가 15만으로 동일한 3개의 관측치는 Y20_AMT가 많은 순으로 정렬된 것을 확인할 수 있음
3. 데이터 요약하기 : summarize() 함수, group_by() 함수
summarize() 함수 : 기술통계 함수와 같이 사용하며, 데이터를 요약할 때 사용한다.
4. 1) 데이터 전체 요약하기 : summarize() 함수
summarise() 함수 = summarize() 함수 : 기술 통계 함수와 함께 사용하여 데이터 요약을 확인할 때 사용
summarize(데이터, 요약한 컬럼의 새로운 이름 = 기술통계 함수(데이터의 컬럼 명))
출처: https://rlawkdus.tistory.com/21 [하나하나차곡차곡:티스토리]
- 예를 들어 지정한 변수의 평균을 내려면 mean() 함수와 함께 사용하여 mean() 함수로 도출한 평균이 새 변수명에 할당되면 summarize() 함수로 데이터 요약 정보가 출력된다.
ex) prac 데이터셋에서 21년 이용금액(Y21_AMT) 변수 값의 평균내기
> prac %>% summarize(Mean_Y21_AMT = mean(Y21_AMT))
# A tibble: 1 × 1
Mean_Y21_AMT
<dbl>
1 616145
1) 그룹별 합계 도출하기
데이터를 집단별로 나누어 요약하기
- summarize() 함수와 group_by() 함수를 연계해서 사용하면 그룹별로 데이터 요약을 할 수 있다.
group_by() 함수 : 그룹별로 데이터를 요약할 때 사용
group_by(데이터, 변수명)
- group_by() 함수는 데이터를 지정한 조건에 따라 그룹으로 묶는 역할을 하므로 단독으로 쓰기보다는 다른 함수와 같이 사용하는 경우가 많음
출처: https://rlawkdus.tistory.com/21 [하나하나차곡차곡:티스토리]
ex) prac 데이터셋의 AREA 변수값에 따른 Y21_AMT 변수의 합계를 도출하기
- AREA 변수의 값을 그룹 짓는다 -> 그룹별 합계를 새로운 변수로 도출한다.
> prac %>% group_by(AREA) %>% summarize(SUM_Y21_AMT = sum(Y21_AMT))
# A tibble: 3 × 2
AREA SUM_Y21_AMT
<chr> <dbl>
1 경기 2520000
2 서울 6897900
3 제주 2905000
ex) 성별에 따른 21년 이용건수 평균내기
> prac %>% group_by(SEX) %>% summarize(mean_21AMT = mean(Y21_AMT))
# A tibble: 2 × 2
SEX mean_21AMT
<chr> <dbl>
1 F 518158.
2 M 763125
ex) 20대, 30대, 40대 이런식으로 디테일하게 그룹화해서 각 연령대별 21년 이용건수 평균내기 (오래걸렸다..)
> max(prac$AGE)
[1] 60
> prac$group_age <- ifelse(prac$AGE < 30, "20대",
+ ifelse(prac$AGE < 40, "30대",
+ ifelse(prac$AGE<50, "40대",
+ ifelse(prac$AGE<60, "50대", "60대"))))
> table(prac$group_age)
20대 30대 40대 50대 60대
7 4 4 4 1
> mutate(prac, prac$group_age)
# A tibble: 20 × 15
ID SEX AGE AREA CAR_YN Y21_AMT Y21_CNT Y21F_AMT Y21O_CNT Y20_AMT Y20_CNT
<dbl> <chr> <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1 F 50 서울 1 1300000 50 170000 25 1000000 40
2 2 M 40 경기 1 450000 25 50000 10 700000 30
3 3 F 28 제주 0 275000 10 7500 3 500000 7
4 4 M 50 서울 0 2300000 8 50000 3 2500000 3
5 5 M 27 서울 1 845000 30 130000 11 760000 28
6 6 F 23 서울 0 42900 1 0 1 300000 6
7 7 F 56 경기 0 150000 2 5000 1 130000 2
8 8 F 47 서울 1 650000 10 45000 6 400000 7
9 9 M 20 서울 0 930000 4 50000 3 250000 2
10 10 F 38 경기 0 520000 17 11000 10 550000 16
11 11 M 35 서울 0 150000 5 10000 3 490000 25
12 12 F 44 제주 1 1150000 53 270000 37 1150000 48
13 13 F 60 경기 0 550000 35 120000 10 800000 32
14 14 M 55 제주 1 1050000 15 300000 5 2900000 18
15 15 F 46 경기 1 600000 16 105000 4 1000000 20
16 16 F 32 서울 1 530000 15 380000 7 1000000 43
17 17 M 30 경기 1 250000 8 70000 6 400000 10
18 18 F 29 서울 1 150000 5 7000 3 100000 5
19 19 F 27 제주 0 300000 15 150000 10 320000 27
20 20 M 27 제주 1 130000 4 38000 2 150000 30
# ℹ 4 more variables: Y20F_AMT <dbl>, Y20O_CNT <dbl>, group_age <chr>,
# `prac$group_age` <chr>
> View(prac)
> select(prac, ID, SEX, AGE, AREA, Y21_AMT, group_age)
# A tibble: 20 × 6
ID SEX AGE AREA Y21_AMT group_age
<dbl> <chr> <dbl> <chr> <dbl> <chr>
1 1 F 50 서울 1300000 50대
2 2 M 40 경기 450000 40대
3 3 F 28 제주 275000 20대
4 4 M 50 서울 2300000 50대
5 5 M 27 서울 845000 20대
6 6 F 23 서울 42900 20대
7 7 F 56 경기 150000 50대
8 8 F 47 서울 650000 40대
9 9 M 20 서울 930000 20대
10 10 F 38 경기 520000 30대
11 11 M 35 서울 150000 30대
12 12 F 44 제주 1150000 40대
13 13 F 60 경기 550000 60대
14 14 M 55 제주 1050000 50대
15 15 F 46 경기 600000 40대
16 16 F 32 서울 530000 30대
17 17 M 30 경기 250000 30대
18 18 F 29 서울 150000 20대
19 19 F 27 제주 300000 20대
20 20 M 27 제주 130000 20대
> prac %>% group_by(group_age)%>%summarize(mean_21AMT2 = mean(Y21_AMT))
# A tibble: 5 × 2
group_age mean_21AMT2
<chr> <dbl>
1 20대 381843.
2 30대 362500
3 40대 712500
4 50대 1200000
5 60대 550000
4. 데이터 결합하기
- 결합(join) : 2개 이상의 테이블을 결합하여 하나의 테이블로 만드는 것
- 결합의 종류
- 세로결합 bind_rows()
- 가로결합
- left_join()
- inner_join()
- full_join()
1) 세로 결합
- 결합할 테이블에 있는 변수명을 기준으로 결합 (공통 변수를 기준으로 결합하고, 서로 겹치지 않는 변수는 모두 새로운 테이블에 추가됨)
- bind_rows() 함수 사용, 결합하려는 테이블명을 쉼표(,)로 나열
> library(readxl)
> mcard <- read_excel("C:/Rstudy/sources/Sample2_m_history.xlsx")
> fcard <- read_excel("C:/Rstudy/sources/Sample3_f_history.xlsx")
> mcard
# A tibble: 4 × 8
ID SEX AGE AREA AMT21 Y21_CNT AMT20 Y20_CNT
<dbl> <chr> <dbl> <chr> <dbl> <dbl> <dbl> <dbl>
1 2 M 40 경기 450000 25 700000 30
2 4 M 50 서울 400000 8 125000 3
3 5 M 27 서울 845000 30 760000 28
4 9 M 20 인천 930000 4 250000 2
> fcard
# A tibble: 6 × 8
ID SEX AGE AREA AMT21 Y21_CNT AMT20 Y20_CNT
<dbl> <chr> <dbl> <chr> <dbl> <dbl> <dbl> <dbl>
1 1 F 50 서울 1300000 50 100000 40
2 3 F 28 제주 275000 10 50000 5
3 6 F 23 서울 42900 1 300000 6
4 7 F 56 경기 150000 2 130000 2
5 8 F 47 서울 570000 10 400000 7
6 10 F 38 경기 520000 17 550000 16
> table_join <- bind_rows(mcard, fcard)
> table_join
# A tibble: 10 × 8
ID SEX AGE AREA AMT21 Y21_CNT AMT20 Y20_CNT
<dbl> <chr> <dbl> <chr> <dbl> <dbl> <dbl> <dbl>
1 2 M 40 경기 450000 25 700000 30
2 4 M 50 서울 400000 8 125000 3
3 5 M 27 서울 845000 30 760000 28
4 9 M 20 인천 930000 4 250000 2
5 1 F 50 서울 1300000 50 100000 40
6 3 F 28 제주 275000 10 50000 5
7 6 F 23 서울 42900 1 300000 6
8 7 F 56 경기 150000 2 130000 2
9 8 F 47 서울 570000 10 400000 7
10 10 F 38 경기 520000 17 550000 16
2) 가로결합
가로결합 방식 함수는 테이블 결합 기준이 되는 변수가 필요하다.
이를 키(key) 변수라고 하며, by = "변수명" 형태로 지정한다.
키 변수는 결합할 각 테이블 모두에 있어야하며, 한쪽이라도 키 변수가 없으면 실행되지 않음
키 변수가 각 테이블에 지정된 이름이 다를 떄는 변수명을 먼저 통일한후 실행해야함
(1) left_join() 함수 : 지정한 변수와 테이블1을 기준으로 테이블2에 있는 나머지 변수들을 결합함
테이블1에만 있는 기준변수의 행만 출력 (A ∩ Bc)
left_join(테이블1, 테이블2, by = "변수명")
(2) inner_join() 함수 : 테이블1과 테이블2에서 기준으로 지정한 변수값이 동일할 때만 결합
테이블1과 테이블2에 공통적으로 있는 기준변수의 행을 출력 (A ∩ B)
inner_join(테이블1, 테이블2, by = "변수명")
(3) full_join() 함수 : 테이블1과 테이블2에서 기준으로 지정한 변수값 전체를 결합
테이블1과 테이블2에 있는 모든 기준변수의 행을 출력 (A∪B)
full_join(테이블1, 테이블2, by = "변수명")
> jeju_21 <- read_excel("C:/Rstudy/sources/Sample4_y21_history.xlsx")
> jeju_20 <- read_excel("C:/Rstudy/sources/Sample5_y20_history.xlsx")
> jeju_21
# A tibble: 8 × 6
ID SEX AGE AREA AMT21 Y21_CNT
<dbl> <chr> <dbl> <chr> <dbl> <dbl>
1 1 F 50 서울 1300000 50
2 2 M 40 경기 450000 25
3 4 M 50 서울 400000 8
4 5 M 27 서울 845000 30
5 7 F 56 경기 150000 2
6 8 F 47 서울 570000 10
7 9 M 20 인천 930000 4
8 10 F 38 경기 520000 17
> jeju_20
# A tibble: 9 × 3
ID AMT20 Y20_CNT
<dbl> <dbl> <dbl>
1 1 100000 40
2 2 700000 30
3 3 50000 5
4 4 125000 3
5 5 760000 28
6 6 300000 6
7 7 130000 2
8 8 400000 7
9 10 550000 16
> # 두 테이블 모두 ID 변수열을 가지고 있으므로 병합 가능
> join1 <- left_join(jeju_21, jeju_20, by = "ID")
> join1
# A tibble: 8 × 8
ID SEX AGE AREA AMT21 Y21_CNT AMT20 Y20_CNT
<dbl> <chr> <dbl> <chr> <dbl> <dbl> <dbl> <dbl>
1 1 F 50 서울 1300000 50 100000 40
2 2 M 40 경기 450000 25 700000 30
3 4 M 50 서울 400000 8 125000 3
4 5 M 27 서울 845000 30 760000 28
5 7 F 56 경기 150000 2 130000 2
6 8 F 47 서울 570000 10 400000 7
7 9 M 20 인천 930000 4 NA NA
8 10 F 38 경기 520000 17 550000 16
> #left_join() 함수는 테이블1에 있는 기준변수의 행만 나타냄
> join2 <- inner_join(jeju_21, jeju_20, by="ID")
> join2
# A tibble: 7 × 8
ID SEX AGE AREA AMT21 Y21_CNT AMT20 Y20_CNT
<dbl> <chr> <dbl> <chr> <dbl> <dbl> <dbl> <dbl>
1 1 F 50 서울 1300000 50 100000 40
2 2 M 40 경기 450000 25 700000 30
3 4 M 50 서울 400000 8 125000 3
4 5 M 27 서울 845000 30 760000 28
5 7 F 56 경기 150000 2 130000 2
6 8 F 47 서울 570000 10 400000 7
7 10 F 38 경기 520000 17 550000 16
> #inner_join() 함수는 테이블1과 테이블2 모두에 있는 기준변수의 행만 나타냄
> join3 <- full_join(jeju_21, jeju_20, by="ID")
> join3
# A tibble: 10 × 8
ID SEX AGE AREA AMT21 Y21_CNT AMT20 Y20_CNT
<dbl> <chr> <dbl> <chr> <dbl> <dbl> <dbl> <dbl>
1 1 F 50 서울 1300000 50 100000 40
2 2 M 40 경기 450000 25 700000 30
3 4 M 50 서울 400000 8 125000 3
4 5 M 27 서울 845000 30 760000 28
5 7 F 56 경기 150000 2 130000 2
6 8 F 47 서울 570000 10 400000 7
7 9 M 20 인천 930000 4 NA NA
8 10 F 38 경기 520000 17 550000 16
9 3 NA NA NA NA NA 50000 5
10 6 NA NA NA NA NA 300000 6
> arrange(join3, ID)
# A tibble: 10 × 8
ID SEX AGE AREA AMT21 Y21_CNT AMT20 Y20_CNT
<dbl> <chr> <dbl> <chr> <dbl> <dbl> <dbl> <dbl>
1 1 F 50 서울 1300000 50 100000 40
2 2 M 40 경기 450000 25 700000 30
3 3 NA NA NA NA NA 50000 5
4 4 M 50 서울 400000 8 125000 3
5 5 M 27 서울 845000 30 760000 28
6 6 NA NA NA NA NA 300000 6
7 7 F 56 경기 150000 2 130000 2
8 8 F 47 서울 570000 10 400000 7
9 9 M 20 인천 930000 4 NA NA
10 10 F 38 경기 520000 17 550000 16
> #full_join() 함수는 테이블1과 테이블2에 있는 기준변수의 행을 모두 나타냄
- 관측치가 없을 때는 NA가 삽입된다.
함수 | 기능 |
select() | dplyr / 변수(열) 추출 |
filter() | dplyr / 조건에 맞는 행 추출 |
arrange() | dplyr / 지정한 열을 기준으로 정렬 (기본: 오름차순) |
summarize() | dplyr / 데이터 요약 |
group_by() | dplyr / 데이터 그룹화 |
bind_rows() | dplyr / 데이터 세로 결합 |
left_joins() | dplyr / 데이터 가로 결합 (A ∩ Bc) |
inner_joins() | dplyr / 데이터 가로 결합 (A ∩ B) |
full_joins() | dplyr / 데이터 가로 결합 (A∪B) |
'기타 > R' 카테고리의 다른 글
R 독학하기 - 5 (4. 데이터 정제) (0) | 2024.02.23 |
---|---|
R 독학하기 - 5 (3. 데이터 구조 변형) (0) | 2024.02.22 |
R 독학하기 - 5 (1. dplyr 패키지) (0) | 2024.02.16 |
R 독학하기 - 4 (3) (1) | 2024.02.15 |
R 독학하기 - 4 (2) (1) | 2024.02.14 |