티스토리 뷰

Data Science/R package

dplyr_mutate()

jsBae 2022. 5. 4. 00:52

파생변수 추가하기 (열 추가)

> exam %>% 
+   mutate(total=math+english+science) %>% 
+   head
  id class math english science total
1  1     1   50      98      50   198
2  2     1   60      97      60   217
3  3     1   45      86      78   209
4  4     1   30      98      58   186
5  5     2   25      80      65   170
6  6     2   50      89      98   237
> exam %>% 
+   mutate(total = math + english + science,
+          mean = (math + english + science)/3) %>% 
+   head()
  id class math english science total     mean
1  1     1   50      98      50   198 66.00000
2  2     1   60      97      60   217 72.33333
3  3     1   45      86      78   209 69.66667
4  4     1   30      98      58   186 62.00000
5  5     2   25      80      65   170 56.66667
6  6     2   50      89      98   237 79.00000
> exam %>% 
+   mutate(test = ifelse(science>=60, "Pass", "Fail")) %>% 
+   head
  id class math english science test
1  1     1   50      98      50 Fail
2  2     1   60      97      60 Pass
3  3     1   45      86      78 Pass
4  4     1   30      98      58 Fail
5  5     2   25      80      65 Pass
6  6     2   50      89      98 Pass
> exam %>% 
+   mutate(total= math + english + science) %>% 
+   arrange(total) %>% 
+   head
  id class math english science total
1  9     3   20      98      15   133
2 14     4   48      87      12   147
3 12     3   45      85      32   162
4  5     2   25      80      65   170
5  4     1   30      98      58   186
6  8     2   90      78      25   193
> exam %>% 
+   mutate(total= math + english + science) %>% 
+   arrange(desc(total)) %>% 
+   head
  id class math english science total
1 18     5   80      78      90   248
2 19     5   89      68      87   244
3  6     2   50      89      98   237
4 17     5   65      68      98   231
5 16     4   58      98      65   221
6 20     5   78      83      58   219

mpg 데이터는 연비를 나타내는 변수가 hwy(고속도로 연비), cty(도시 연비) 두 종류로 분리되어 있습니다. 두 변수를 각각 활용하는 대신 하나의 통합 연비 변수를 만들어 분석하려고 합니다.

Q1. mpg 데이터 복사본을 만들고, cty와 hwy를 더한 '합산 연비 변수'를 추가하세요.

> df <- mpg %>% 
+   mutate(total = cty + hwy)
> head(df)
  manufacturer model displ year cyl      trans drv cty hwy fl   class total
1         audi    a4   1.8 1999   4   auto(l5)   f  18  29  p compact    47
2         audi    a4   1.8 1999   4 manual(m5)   f  21  29  p compact    50
3         audi    a4   2.0 2008   4 manual(m6)   f  20  31  p compact    51
4         audi    a4   2.0 2008   4   auto(av)   f  21  30  p compact    51
5         audi    a4   2.8 1999   6   auto(l5)   f  16  26  p compact    42
6         audi    a4   2.8 1999   6 manual(m5)   f  18  26  p compact    44
Q2. 앞에서 만든 '합산 연비 변수'를 2로 나눠 '평균 연비 변수'를 추가세요.
> df <- df %>% 
+   mutate(mean=total/2)
> head(df)
  manufacturer model displ year cyl      trans drv cty hwy fl   class total mean
1         audi    a4   1.8 1999   4   auto(l5)   f  18  29  p compact    47 23.5
2         audi    a4   1.8 1999   4 manual(m5)   f  21  29  p compact    50 25.0
3         audi    a4   2.0 2008   4 manual(m6)   f  20  31  p compact    51 25.5
4         audi    a4   2.0 2008   4   auto(av)   f  21  30  p compact    51 25.5
5         audi    a4   2.8 1999   6   auto(l5)   f  16  26  p compact    42 21.0
6         audi    a4   2.8 1999   6 manual(m5)   f  18  26  p compact    44 22.0​


Q3. '평균 연비 변수'가 가장 높은 자동차 3종의 데이터를 출력하세요.

 

> df %>% 
+   arrange(desc(mean)) %>% 
+   head(3)
  manufacturer      model displ year cyl      trans drv cty hwy fl      class total mean
1   volkswagen new beetle   1.9 1999   4 manual(m5)   f  35  44  d subcompact    79 39.5
2   volkswagen      jetta   1.9 1999   4 manual(m5)   f  33  44  d    compact    77 38.5
3   volkswagen new beetle   1.9 1999   4   auto(l4)   f  29  41  d subcompact    70 35.0
> mpg %>%
+   mutate(total = cty + hwy,   # 합산 변수 만들기
+          mean = total/2) %>%  # 평균 변수 만들기
+   arrange(desc(mean)) %>%     # 내림차순 정렬
+   head(3)      
  manufacturer      model displ year cyl      trans drv cty hwy fl      class total mean
1   volkswagen new beetle   1.9 1999   4 manual(m5)   f  35  44  d subcompact    79 39.5
2   volkswagen      jetta   1.9 1999   4 manual(m5)   f  33  44  d    compact    77 38.5
3   volkswagen new beetle   1.9 1999   4   auto(l4)   f  29  41  d subcompact    70 35.0

 

728x90
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
반응형