티스토리 뷰
728x90
데이터 생성
> # 중간고사 데이터 생성
> 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))
> test1
id midterm
1 1 60
2 2 80
3 3 70
4 4 90
5 5 85
> test2
id final
1 1 70
2 2 83
3 3 65
4 4 95
5 5 80
left_join()
* by에 변수명을 지정할 때 변수명 앞 뒤에 겹따옴표 입력
> total <- left_join(test1, test2, by="id")
> total
id midterm final
1 1 60 70
2 2 80 83
3 3 70 65
4 4 90 95
5 5 85 80
> name <- data.frame(class = c(1, 2, 3, 4, 5),
+ teacher = c("kim", "lee", "park", "choi", "jung"))
> name
class teacher
1 1 kim
2 2 lee
3 3 park
4 4 choi
5 5 jung
> exam_new <- left_join(exam, name, by="class")
> exam_new
id class math english science teacher
1 1 1 50 98 50 kim
2 2 1 60 97 60 kim
3 3 1 45 86 78 kim
4 4 1 30 98 58 kim
5 5 2 25 80 65 lee
6 6 2 50 89 98 lee
7 7 2 80 90 45 lee
8 8 2 90 78 25 lee
9 9 3 20 98 15 park
10 10 3 50 98 45 park
11 11 3 65 65 65 park
12 12 3 45 85 32 park
13 13 4 46 98 65 choi
14 14 4 48 87 12 choi
15 15 4 75 56 78 choi
16 16 4 58 98 65 choi
17 17 5 65 68 98 jung
18 18 5 80 78 90 jung
19 19 5 89 68 87 jung
20 20 5 78 83 58 jung
세로로 합치기
데이터 생성
> # 학생 1~5번 시험 데이터 생성
> group_a <- data.frame(id = c(1, 2, 3, 4, 5),
+ test = c(60, 80, 70, 90, 85))
>
> # 학생 6~10번 시험 데이터 생성
> group_b <- data.frame(id = c(6, 7, 8, 9, 10),
+ test = c(70, 83, 65, 95, 80))
> group_a
id test
1 1 60
2 2 80
3 3 70
4 4 90
5 5 85
> group_b
id test
1 6 70
2 7 83
3 8 65
4 9 95
5 10 80
> group_all <- bind_rows(group_a,group_b)
> group_all
id test
1 1 60
2 2 80
3 3 70
4 4 90
5 5 85
6 6 70
7 7 83
8 8 65
9 9 95
10 10 80

mpg 데이터를 이용해서 분석 문제를 해결해 보세요.
mpg 데이터의 fl 변수는 자동차에 사용하는 연료(fuel)를 의미합니다. 아래는 자동차 연료별 가격을 나타낸 표입니다.
fl | 연료 종류 | 가격(갤런당 USD) |
c | CNG | 2.35 |
d | diesel | 2.38 |
e | ethanol E85 | 2.11 |
p | premium | 2.76 |
r | regular | 2.22 |
> 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)
> fuel # 출력
fl price_fl
1 c 2.35
2 d 2.38
3 e 2.11
4 p 2.76
5 r 2.22
Q1. mpg 데이터에는 연료 종류를 나타낸 fl 변수는 있지만 연료 가격을 나타낸 변수는 없습니다. 위에서 만든 fuel 데이터를 이용해서 mpg 데이터에 price_fl(연료 가격) 변수를 추가하세요.
> mpg1 <- left_join(mpg, fuel, by="fl")
> mpg1 %>% head(20)
manufacturer model displ year cyl trans drv cty hwy fl class price_fl
1 audi a4 1.8 1999 4 auto(l5) f 18 29 p compact 2.76
2 audi a4 1.8 1999 4 manual(m5) f 21 29 p compact 2.76
3 audi a4 2.0 2008 4 manual(m6) f 20 31 p compact 2.76
4 audi a4 2.0 2008 4 auto(av) f 21 30 p compact 2.76
5 audi a4 2.8 1999 6 auto(l5) f 16 26 p compact 2.76
6 audi a4 2.8 1999 6 manual(m5) f 18 26 p compact 2.76
7 audi a4 3.1 2008 6 auto(av) f 18 27 p compact 2.76
8 audi a4 quattro 1.8 1999 4 manual(m5) 4 18 26 p compact 2.76
9 audi a4 quattro 1.8 1999 4 auto(l5) 4 16 25 p compact 2.76
10 audi a4 quattro 2.0 2008 4 manual(m6) 4 20 28 p compact 2.76
11 audi a4 quattro 2.0 2008 4 auto(s6) 4 19 27 p compact 2.76
12 audi a4 quattro 2.8 1999 6 auto(l5) 4 15 25 p compact 2.76
13 audi a4 quattro 2.8 1999 6 manual(m5) 4 17 25 p compact 2.76
14 audi a4 quattro 3.1 2008 6 auto(s6) 4 17 25 p compact 2.76
15 audi a4 quattro 3.1 2008 6 manual(m6) 4 15 25 p compact 2.76
16 audi a6 quattro 2.8 1999 6 auto(l5) 4 15 24 p midsize 2.76
17 audi a6 quattro 3.1 2008 6 auto(s6) 4 17 25 p midsize 2.76
18 audi a6 quattro 4.2 2008 8 auto(s6) 4 16 23 p midsize 2.76
19 chevrolet c1500 suburban 2wd 5.3 2008 8 auto(l4) r 14 20 r suv 2.22
20 chevrolet c1500 suburban 2wd 5.3 2008 8 auto(l4) r 11 15 e suv 2.11
Q2. 연료 가격 변수가 잘 추가됐는지 확인하기 위해서 model, fl, price_fl 변수를 추출해 앞부분 5행을 출력해 보세요.
> mpg1 %>%
+ select(model, fl, price_fl) %>%
+ head(5)
model fl price_fl
1 a4 p 2.76
2 a4 p 2.76
3 a4 p 2.76
4 a4 p 2.76
5 a4 p 2.76
728x90
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
반응형