티스토리 뷰

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
반응형