일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 시각화
- iNT
- scikit-learn
- 파이썬
- 데이터 분석
- 태블로
- Udemy
- 머신러닝
- pandas
- pyspark
- numpy
- 크롤링
- Python
- Tableau
- 데이터분석
- selenium
- Word Cloud
- 데이터
- 형태소분석기
- Okt
- ionehotencoding
- input
- konlpy
- SQL
- 인공지능
- Today
- Total
반전공자
R # 데이터 가공 (5) 본문
" 쉽게 배우는 R 데이터 분석 " 을 교재로 하여 공부하는 과정을 작성한 글입니다." (일개 대학생입니다.)
# 데이터 합치기
내가 가지고 있는 데이터 중 합쳐서 하나의 데이터로 저장해놓아야 분석에 용이할 경우가 분명 존재할텐데,
그렇다면 두개의 자료를 합치는 방법은 무엇이 있을까?
- 가로로 합치기
: 열이 많아진다고 생각하면 된다.
만약 중간고사 점수 자료와 기말고사 점수 자료를 하나의 데이터로 합치려면?
⇒
test1 <- data.frame(id=c(1,2,3,4,5), midterm=c(60,80,70,90,85))
⇒
test2 <- data.frame(id=c(1,2,3,4,5), final=c(70,83,65,95,80))
이제 위의 두 데이터를 하나로 합쳐볼까?
중간고사, 기말고사 자료이기 때문에 가로로 합쳐보자.
⇒
left.join(test1, test2, by="기준")
by에 기준을 정해주는 이유는?
만약 그냥 합친다면, id가 두번이나 반복될텐데 이를 방지해주기 위함.
⇒
total <- left.join(test1, test2, by="id")
기준인 id 가 왼쪽에 모여있음을 볼 수 있다!
그럼 다른 데이터를 새로 만들고 이전의 exam과 또 합쳐보자.
⇒
name <- data.frame(class=c(1,2,3,4,5), teacher=c("kim", "lee", "park", "choi", "jung"))
각 반의 담임선생님의 성을 넣은 데이터.
exam과 합쳐보자
⇒
exam_new <- left.join(exam, name, by="class")
- 세로로 합치기
만약 같은 종류의 데이터인데 나누어져 있어 합치고 싶다면 같은 열에 해당하는 정보들일 것이기 때문에 세로로 합쳐야 마땅하다.
실습을 위해 새로운 데이터를 만들어보자
⇒
group_a <- data.frame(id=c(1,2,3,4,5), test=c(60,80,70,90,85))
⇒
group_b <- data.frame(id=c(6,7,8,9,10), test=c(70,83,65,95,80))
id가 1~10까지 있는데 1~5와 6~10으로 나누어져 있음을 알 수 있다.
이제 두 자료를 세로로 합쳐야 하는데,,
필요한 함수는?
bind.rows(group_a, group_b)
group_all <- bind.rows(group_a, group_b)
** 변수명이 다른 두 데이터일 경우 bind.rows가 불가능하다.
# 개인 실습
이 데이터를 만들고, 기존의 mpg에 가로로 합치기
fuel <- data.frame(fl=c("c", "d", "e", "p", "r"),
price_fl=c(2.35, 2.38, 2.11, 2.76, 2.22), stringsAsFactors=F)
stringsAsFactors=F 문장을 쓰는 이유는?
기존의 mpg 데이터의 fl과 문자를 비교하여 기준을 잡고 합쳐야 하는데, data.frame은 입력 시 문자가 들어올 경우 자동으로 factor 타입이 되기때문에, 이를 방지해주기 위해서 작성한다.
이제 합쳐보자.
⇒
new_207 <- left.join(mpg, fuel, by="fl")
new_207이라는 변수 안에 합친 데이터를 넣자.
기존 mpg 안에 fl 이라는 열이 존재하기 때문에 기준으로 fl을 잡는 것이 가능하다.
잘 합쳐졌는지 확인을 위해 head를 사용하여 확인하자 (6번째 줄 까지 볼 수 있음)
⇒
new_207 %>% select(model, fl, price_fl) %>% he
ad
* select는 열 선택 함수
오늘로써 데이터 가공에 대한 이론은 모두 배웠고, 실습도 해보았다!
다음 시간부터는 "데이터 정제"에 대해서 배우는 시간을 가지도록 하겠당
배울수록 할 수 있는 것들이 많아지면서 크게 어렵지도 않고, 재밌어지는 것 같다!
'데이터분석 > R' 카테고리의 다른 글
R # 데이터 정제 (2) (0) | 2021.02.23 |
---|---|
R # 데이터 정제 (1) (0) | 2021.02.19 |
R # 데이터 가공 (4) (0) | 2021.01.28 |
R # 데이터 가공 (3) 분석실습 (0) | 2021.01.26 |
R # 데이터 가공 (2) (0) | 2021.01.26 |