mpg ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด ๋ค์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ธ์.
1. ์๋์ฐจ ๋ฐฐ๊ธฐ๋์ ๋ฐ๋ผ ๊ณ ์๋๋ก ์ฐ๋น๊ฐ ๋ค๋ฅธ์ง ์์๋ณด๋ ค๊ณ ํฉ๋๋ค. displ(๋ฐฐ๊ธฐ๋)
์ด 4 ์ดํ์ธ ์๋์ฐจ์ 5 ์ด์์ธ ์๋์ฐจ ์ค ์ด๋ค ์๋์ฐจ์ hwy(๊ณ ์๋๋ก ์ฐ๋น)๊ฐ
ํ๊ท ์ ์ผ๋ก ๋ ๋์์ง ์์๋ณด์ธ์
- ์๋์ฐจ ์ ์กฐ ํ์ฌ์ ๋ฐ๋ผ ๋์ ์ฐ๋น๊ฐ ๋ค๋ฅธ์ง ์์๋ณด๋ ค๊ณ ํฉ๋๋ค. manufacturer
๊ฐ โaudiโ์ โtoyotaโ์ cty(๋์ ์ฐ๋น)๊ฐ ํ๊ท ์ ์ผ๋ก ๋ ๋์์ง ์์๋ณด์ธ์.
- โchevroletโ, โfordโ, โhondaโ ์๋์ฐจ์ ๊ณ ์๋๋ก ์ฐ๋น ํ๊ท ์ ์์๋ณด๋ ค๊ณ ํฉ๋๋ค.
์ด ํ์ฌ๋ค์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ ํ hwy์ ์ ์ฒด ํ๊ท ์ ๊ตฌํ์ธ์
< ํ์ด ์ฝ๋ >
1.
mpg <- as.data.frame(ggplot2::mpg)
head(mpg)
df_displ4 <- mpg %>% filter(displ <= 4)
df_displ5 <- mpg %>% filter(displ >= 5)
mean(df_displ4$hwy)
mean(df_displ5$hwy)
2.
df_audi <- mpg %>% filter(manufacturer == 'audi')
df_toyota <- mpg %>% filter(manufacturer == 'toyota')
mean(df_audi$cty)
mean(df_toyota$cty)
3.
df_mean <- mpg %>% filter(manufacturer %in% c('chevrolet', 'ford', 'honda'))
mean(df_mean$hwy)
mpg ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด ๋ค์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ธ์.
1 mpg ๋ฐ์ดํฐ์์ class(์๋์ฐจ ์ข ๋ฅ), cty(๋์ ์ฐ๋น) ๋ณ์๋ฅผ ์ถ์ถํ์ฌ ์๋ก์ด ๋ฐ
์ดํฐ๋ฅผ ๋ง๋์ธ์.
2 ์๋ก์ด ๋ฐ์ดํฐ์ ์ผ๋ถ๋ฅผ ์ถ๋ ฅํ์ฌ ๋ ๋ณ์๋ก๋ง ๊ตฌ์ฑ๋์ด ์๋์ง ํ์ธํ์ธ์,.
3 ์๋์ฐจ ์ข ๋ฅ์ ๋ฐ๋ผ ๋์ ์ฐ๋น๊ฐ ๋ค๋ฅธ์ง๋ฅผ ์์๋ณด๋ ค๊ณ ํฉ๋๋ค. ์์ ๋ฐ์ดํฐ๋ฅผ ์ด
์ฉํ์ฌ class๊ฐ โsuvโ์ธ ์ง๋์ฐจ์ โcompactโ์ธ ์๋์ฐจ ์ค ์ด๋ค ์๋์ฐจ๊ฐ cty๊ฐ ๋
๋์์ง ์์๋ณด์ธ์,.
< ํ์ด ์ฝ๋ >
1.
df_mpg_new <- mpg %>% select(class, cty)
2.
head(df_mpg_new,10)
3.
df_mpg_class_suv <- df_mpg_new %>% filter(class == 'suv')
mean(df_mpg_class_suv$cty)
df_mpg_class_compact <- df_mpg_new %>% filter(class == 'compact')
mean(df_mpg_class_compact$cty)
mpg ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด ๋ค์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ธ์.
1. โaudiโ์์ ์์ฐํ ์๋์ฐจ ์ค์ ์ด๋ค ๋ชจ๋ธ(class)์ด hwy(๊ณ ์๋๋ก ์ฐ๋น)๊ฐ ๋์์ง
ํ์ธํ๋ ค๊ณ ํฉ๋๋ค. โaudiโ์์ ์์ฐ๋ ์ฐจ๋ ์ค hwp๊ฐ 1 ~ 5์์ ํด๋นํ๋ ์๋
์ฐจ์ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ์ธ์.
< ํ์ด ์ฝ๋ >
mpg %>% filter(manufacturer == 'audi') %>% arrange(desc(hwy)) %>% head(5)
mpg ๋ฐ์ดํฐ์์ hwy์ cty ๋ณ์๋ฅผ ์ด์ฉํ์ฌ ํ๋์ ํตํฉ ์ฐ๋น ๋ณ์๋ฅผ ๋ง๋ค
์ด ๋ถ์ํ์ธ์.
1. mpg ๋ฐ์ดํฐ ๋ณต์ฌ๋ณธ์ ๋ง๋ค๊ณ , cty์ hwy๋ฅผ ๋ํ โ์ด ์ฐ๋น ๋ณ์โ๋ฅผ ์ถ๊ฐํ์ธ์.
2. โ์ด ์ฐ๋น ๋ณ์โ๋ฅผ 2๋ก ๋๋ โํ๊ท ์ฐ๋น ๋ณ์โ๋ฅผ ์ถ๊ฐํ์ธ์.
3. โํ๊ท ์ฐ๋น ๋ณ์โ๊ฐ ๊ฐ์ฅ ๋์ ์๋์ฐจ 3์ข ์ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ์ธ์,.
4. ์์ ๋ฌธ์ ๋ฅผ ํ๋์ ํ๋์ ์ฐ๊ฒฐ๋ ๊ตฌ๋ฌธ์ผ๋ก ๋ง๋ค์ด ์คํํ์ธ์
< ํ์ด ์ฝ๋ >
1.
df <- mpg
df %>% mutate(total = cty + hwy)
2.
df %>% mutate(total = cty + hwy, average = (cty + hwy) / 2)
3,4. df %>% mutate(total = cty + hwy, average = (cty + hwy) / 2) %>% arrange(desc(average)) %>% head(3)
mpg์์ ํ์ฌ๋ณ๋ก โsuvโ ์๋์ฐจ์ ๋์ ๋ฐ ๊ณ ์๋๋ก ํตํฉ ์ฐ๋น ํ๊ท ์ ๊ตฌํด ๋ด
๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๊ณ , 1 ~ 5์๊น์ง ์ถ๋ ฅํ์ธ์
< ํ์ด ์ฝ๋ >
mpg <- as.data.frame(ggplot2::mpg)
mpg %>% mutate(total = (cty +hwy)) %>% group_by(manufacturer) %>% summarise(mean_total = mean(total)) %>% arrange(desc(mean_total)) %>% head(5)
mpg ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํ์ธ์.
1. class๋ โsuvโ, โcompactโ ๋ฑ ์๋์ฐจ์ ํน์ง์ ๋ฐ๋ผ 7์ข ๋ฅ๋ก ๋ถ๋ฅํ ๋ณ์์ ๋๋ค. ์ด๋ค ์ฐจ
์ข ์ ๋์ ์ฐ๋น๊ฐ ๋์์ง ๋น๊ตํ๋ ค๊ณ ํ๊ธฐ ์ํด class๋ณ ctyํ๊ท ์ ๊ตฌํด ๋ณด์ธ์.
2. ์์ ๊ฒฐ๊ณผ๋ฌผ์์ class ๊ฐ์ ์ํ๋ฒณ ์์ผ๋ก ์ ๋ ฌ๋์ด ์์ต๋๋ค. ์ด๋ค ์ฐจ์ข ์ ๋์ ์ฐ๋น๊ฐ
๋์์ง ์ฝ๊ฒ ์์๋ณผ ์ ์๋๋ก cty ํ๊ท ์ด ๋์ ์์ผ๋ก ์ ๋ ฌํด์ ์ถ๋ ฅํ์ธ์.
3. ์ด๋ค ํ์ฌ ์๋์ฐจ์ hwy๊ฐ ๊ฐ์ฅ ๋์์ง ์์๋ณด๋ ค๊ณ ํฉ๋๋ค. hwy ํ๊ท ์ด ๊ฐ์ฅ ๋์ ํ์ฌ
3๊ณณ์ ์ถ๋ ฅํ์ธ์.
4. ์ด๋ค ํ์ฌ์์ โcompactโ ์ฐจ์ข ์ ๊ฐ์ฅ ๋ง์ด ์์ฐํ๋์ง ์์๋ณด๋ ค๊ณ ํฉ๋๋ค. ๊ฐ ํ์ฌ๋ณ
โcompactโ ์ฐจ์ข ์ ์๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ฌ ์ถ๋ ฅํ์ธ์
< ํ์ด ์ฝ๋ >
mpg <- as.data.frame(ggplot2::mpg)
1. mpg %>% group_by(class) %>% summarise(mean_cty = mean(cty))
2. mpg %>% group_by(class) %>% summarise(mean_cty = mean(cty)) %>% arrange(desc(mean_cty))
3. mpg %>% group_by(manufacturer) %>% summarise(mean_hwy = mean(hwy)) %>% arrange(desc(mean_hwy)) %>% head(3)
4. mpg %>% group_by(manufacturer) %>% filter(class == 'compact') %>% summarise(freq = n()) %>% arrange(desc(freq))
mpg ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํ์ธ์.
1. mpg ๋ฐ์ดํฐ์ fl ๋ณ์๋ ์๋์ฐจ์ ์ฌ์ฉํ๋ ์ฐ๋ฃ๋ฅผ ์๋ฏธํฉ๋๋ค. ์ฐ๋ฃ์ ์ด๋ฆ๊ณผ ๊ฐ๊ฒฉํ๋
์๋์ ๊ฐ์ต๋๋ค. fuel ๋ฐ์ดํฐ ํ๋ ์์ ์์ฑํ์ธ์,
2. mpg์ fl ๋ณ์์ fuel์ fl์ ์ฐธ์กฐํ์ฌ ์ฐ๋ฃ ๊ฐ๊ฒฉ์ธ price_fl ๋ณ์๋ฅผ ์ถ๊ฐํ์ธ์.
3. ๊ฒฐ๊ณผ ํ์ธ์ ์ํด model, fl, price_fl ๋ณ์๋ฅผ ์ถ์ถํด์ ์๋ถ๋ถ 5ํ์ ์ถ๋ ฅํ์ธ์.
< ํ์ด ์ฝ๋ >
mpg <- as.data.frame(ggplot2::mpg)
1. 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)
2. df <- left_join(mpg, fuel, by = 'fl')
3. df %>% select(model, fl, price_fl) %>% head(5)
ggplot2 ํจํค์ง์ ํฌํจ๋ midwest ๋ฐ์ดํฐ ์ด์ฉํ์ธ์.
1. popadults๋ ํด๋น ์ง์ญ์ ์ฑ์ธ ์ธ๊ตฌ, poptotal์ ์ ์ฒด ์ธ๊ตฌ๋ฅผ ๋ํ๋ ๋๋ค. midwest ๋ฐ์ด
ํฐ์ โ์ ์ฒด ์ธ๊ตฌ ๋๋น ๋ฏธ์ฑ๋ ์ธ๊ตฌ ๋ฐฑ๋ถ์จโ ๋ณ์๋ฅผ ์ถ๊ฐํ์ธ์.
2. ๋ฏธ์ฑ๋ ์ธ๊ตฌ ๋ฐฑ๋ถ์จ์ด ๊ฐ์ฅ ๋์ ์์ 5๊ฐ county์ ๋ฏธ์ฑ๋ ๋ฐฑ๋ถ์จ์ ์ถ๋ ฅํ์ธ์.
3. ๋ถ๋ฅ ๊ธฐ์ค์ ๋ฐ๋ผ ๋ฏธ์ฑ๋ ๋ฑ๊ธ ๋ณ์๋ฅผ ์ถ๊ฐํ๊ณ , ๊ฐ ๋ฑ๊ธ์ ๋ช ๊ฐ์ ์ง์ญ์ด ์๋์ง ์ถ๋ ฅ
ํ์ธ์
4. large : 40% ์ด์, middle : 30~ 40% ๋ฏธ๋ง, small : 30% ๋ฏธ๋ง
5. popasian์ ํด๋น ์ง์ญ์ ์์์์ธ๊ตฌ๋ฅผ ํ์ํฉ๋๋ค. โ์ ์ฒด ์ธ๊ตฌ ๋๋น ์์์์ธ ์ธ๊ตฌ ๋ฐฑ๋ถ
์จ๏ผ๋ณ์๋ฅผ ์ถ๊ฐํ๊ณ ํ์ 10๊ฐ ์ง์ญ์ state, county, ์์์์ธ ์ธ๊ตฌ ๋ฐฑ๋ถ์จ์ ์ถ๋ ฅํ์ธ
์
< ํ์ด ์ฝ๋ >
midwest <- as.data.frame(ggplot2::midwest)
1. midwest <- midwest %>% mutate(minority = (poptotal - popadults) / poptotal)
2. midwest %>% arrange(desc(minority)) %>% select(county) %>% head(5)
3. midwest %>% mutate(grade = ifelse(minority >= 0.4, 'large', ifelse(minority >= 0.3, 'middle', 'small')))
4. midwest %>% mutate(perasian = popasian / poptotal) %>% arrange(perasian) %>% select(state, county, perasian) %>% head(10)