--- title: "수업 과제" author: "홍길동 (2025012345)" #이름과 학번을 넣으세요 date: "`r format(Sys.time(), '%Y-%m-%d %H:%M:%S')`" format: html: toc: false theme: default echo: true include: true warning: false embed-resources: true --- ## Task 1 다음 코드를 실행하여 데이터를 로드합니다. ```{r} library(tidyverse) library(dslabs) data(polls_us_election_2016) ``` 1. grade 값이 결측치(NA)인 여론조사는? `head`를 사용하여 처음 6개 행만 표시하시오. ```{r} ``` 2. 다음 조건을 모두 만족하는 여론조사는? (i) American Strategies, GfK Group, Merrill Poll에서 조사한 경우, (ii) 표본 크기가 1,000명 이상인 경우, (iii) 2016년 10월 20일에 시작된 경우. **힌트**: (i) 조건에서는 %in% 연산자가 유용, 벡터는 `c()`함수로 만들 수 있음. (iii)에서는 날짜 변수의 형식을 확인 ```{r} ``` 3. 다음 조건을 모두 만족하는 여론조사는? (i) Johnson 후보의 여론조사 데이터가 누락되지 않은 경우, (ii) 트럼프와 클린턴의 원본 여론조사 지지율 합이 95%를 초과하는 경우, (iii) 오하이오(OH) 주에서 실시된 경우 **힌트**: 트럼프와 클린턴의 지지율 합계를 계산하는 새로운 변수를 생성한 후 `filter()` 를 적용 4. 표본 크기가 2,000명 이상인 여론조사에서 트럼프의 평균 지지율이 가장 높은 주는? **힌트**: `filter(), group_by(), summarise(), arrange()` 사용. 내림차순 정렬하려면 `arrange()` 함수 사용. ## Task 2 다음 코드를 실행하여 데이터를 로드합니다. ```{r, eval = F} library(dslabs) data(gapminder, package = "dslabs") ``` 1. 대륙/연도별 평균 인구(변수명: mean_pop)를 계산하고, 결과를 새로운 객체 gapminder_mean에 저장하시오. **힌트**: 각 연도별 대륙당 하나의 관측치(행)만 있어야 함. `group_by` 및 `summarise` 사용 ## Task 3 `gapminder` 데이터를 사용하여 다음의 그래프를 `ggplot2`로 생성하시오 1. 2015년 기대수명(Life Expectancy)의 히스토그램을 작성하시오. **힌트**: 히스토그램을 만들 때 aes()에 y 값을 지정해야 할까? `geom_*` 내에서 다음 옵션을 설정하시오: `binwidth` = 5, `boundary` = 45, `colour` = "white", `fill` = "#d90502". 이러한 옵션이 무엇을 의미하는지 설명하시오. 2. 연도/대륙별 평균 기대수명을 구하고 대륙별로 평균 기대수명에 대한 Boxplot 으로 그리시오. `geom_*` 옵션: `colour` = "black", `fill` = "#d90502". **힌트**: continent 및 year 두 개의 변수로 그룹화해야함. 3\. 2015년의 영아 사망률(x축)에 대한 출산율(y축)의 산점도. 산점도를 만든 후 해당 `geom_*` 내에서 `size`를 3으로, `alpha`를 0.5로, `colour`를 "#d90502"로 설정합니다. ## Task 4 1. 2011년 GDP의 평균을 계산하고 mean이라는 객체에 할당하시오. 결측값은 제외. **힌트**: `mean` 함수의 도움말을 읽고 `NA`를 제거하는 방법을 확인 2. 2011년 GDP의 중앙값을 계산하고 median이라는 객체에 할당하시오. 마찬가지로 결측값을 제외. 중앙값이 평균보다 큰가, 작은가? 3. `geom_density`를 사용하여 2011년 GDP의 밀도 그래프(density plot)를 생성하시오. 밀도 그래프는 숫자형 변수의 분포를 나타내는 방법임. 또한 다음 코드를 추가하여 평균과 중앙값을 수직선으로 표시하시오. ``` r geom_vline(xintercept = as.numeric(mean), colour = "red") + geom_vline(xintercept = as.numeric(median), colour = "orange") ``` 4. 2015년 출산율(fertility)과 유아 사망률(infant mortality)의 상관관계를 계산하시오. NA 값을 제외하려면 `cor()` 함수의 `use` 인수를 "pairwise.complete.obs"로 설정. 이 상관관계 값이 Task 3에서 생성한 그래프와 일치하는가? ## Task (Optional): 주가 데이터 분석 {background-color="#ebf8ff"} 1. `tidyquant`를 이용하여 한국의 대표 주식인 **삼성전자("005930.KS")**와 미국의 시장 지수인 **S&P500 ETF("SPY")**의 2021년 1월 1일 이후 주가 데이터를 다운로드하시오. (`tq_get`에 티커를 벡터 `c()` 형태로 입력) 2. `group_by()`와 `mutate()`, `lag()` 함수를 사용하여 두 종목의 **일별 수익률(daily_return)**을 각각 계산하고 `drop_na()`로 결측치를 제거하시오. 3. `ggplot2`를 사용하여 두 종목의 일별 수익률 분포를 비교하는 **밀도 그래프(`geom_density`)**를 겹쳐서(alpha 값 조정) 그리시오. 4. `summarise()`를 활용하여 두 종목 각각의 일평균 수익률(`mean`)과 변동성(`sd`)을 계산하시오. 5. 두 종목의 수익률 간 **상관계수(`cor`)**를 계산하시오. (상관관계를 구하려면 두 수익률을 가로(열)로 나란히 배치해야 하는데, 한국과 미국의 휴장일이 달라 데이터의 길이가 어긋나는 현상이 발생하기 때문에 날짜를 기준으로 데이터를 맞추는 과정(`pivot_wider` 또는 `inner_join`)이 필요함.)