<jupyter_start><jupyter_text>3. 데이터 분석을 위한 연장 챙기기![](img/03_00.png) 03-1. 변하는 수, '변수' 이해하기**변수(Variable)**  - 다양한 값을 지니고 있는 하나의 속성  - 변수는 데이터 분석의 대상![](img/03_01.png)  변수 만들기![](img/03_02.png)<jupyter_code>a <- 1
a

b <- 2
b

c <- 3
c

d <- 3.5
d<jupyter_output><empty_output><jupyter_text>변수로 연산하기<jupyter_code>a + b
a + b + c
4 / b
5 * b<jupyter_output><empty_output><jupyter_text>여러 값으로 구성된 변수 만들기<jupyter_code># c()
var1 <- c(1, 2, 5, 7, 8)    # 숫자 다섯 개로 구성된 var1 생성
var1

var2 <- c(1:5)              # 1~5까지 연속값으로 var2 생성
var2
# seq()
var3 <- seq(1, 5)           # 1~5까지 연속값으로 var3 생성
var3

var4 <- seq(1, 10, by = 2)  # 1~10까지 2 간격 연속값으로 var4 생성
var4

var5 <- seq(1, 10, by = 3)  # 1~10까지 3 간격 연속값으로 var5 생성
var5<jupyter_output><empty_output><jupyter_text>연속값 변수로 연산하기<jupyter_code>var1
var1 + 2

var1
var2
var1 + var2<jupyter_output><empty_output><jupyter_text>문자로 된 변수 만들기<jupyter_code>str1 <- "a"
str1

str2 <- "text"
str2

str3 <- "Hello World!"
str3<jupyter_output><empty_output><jupyter_text>연속 문자 변수 만들기<jupyter_code>str4 <- c("a", "b", "c")
str4

str5 <- c("Hello!", "World", "is", "good!")
str5<jupyter_output><empty_output><jupyter_text>문자로 된 변수로는 연산할 수 없다<jupyter_code>str1 + 2<jupyter_output><empty_output><jupyter_text>03-2. 마술 상자 같은 '함수' 이해하기**함수**- 값을 넣으면 특정한 기능을 수행해 처음과 다른 값이 출력됨![](img/03_03.png)  숫자를 다루는 함수 이용하기<jupyter_code># 변수 만들기
x <- c(1, 2, 3)
x
# 함수 적용하기
mean(x)
max(x)
min(x)<jupyter_output><empty_output><jupyter_text>문자를 다루는 함수 이용하기<jupyter_code>str5

paste(str5, collapse = ",")  # 쉼표를 구분자로 str4의 단어들 하나로 합치기<jupyter_output><empty_output><jupyter_text>함수의 옵션 설정하기 - 파라미터<jupyter_code>paste(str5, collapse = " ")<jupyter_output><empty_output><jupyter_text>함수의 결과물로 새 변수 만들기<jupyter_code>x_mean <- mean(x)
x_mean

str5_paste <- paste(str5, collapse = " ")
str5_paste<jupyter_output><empty_output><jupyter_text>03-3. 함수 꾸러미, '패키지' 이해하기**패키지(packages)**- 함수가 여러 개 들어 있는 꾸러미- 하나의 패키지 안에 다양한 함수가 들어있음- 함수를 사용하려면 패키지 설치 먼저 해야함![](img/03_04.png)  ![](img/03_05.png)  ggplot2 패키지 설치하기, 로드하기<jupyter_code># install.packages("ggplot2")  # ggplot2 패키지 설치
library(ggplot2)             # ggplot2 패키지 로드<jupyter_output><empty_output><jupyter_text>함수 사용하기<jupyter_code># 여러 문자로 구성된 변수 생성
x <- c("a", "a", "b", "c")
x
# 빈도 그래프 출력
qplot(x)<jupyter_output><empty_output><jupyter_text>ggplot2의 mpg 데이터로 그래프 만들기<jupyter_code># data에 mpg, x축에 hwy 변수 지정하여 그래프 생성
qplot(data = mpg, x = hwy)<jupyter_output>`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.<jupyter_text>qplot() 파라미터 바꿔보기<jupyter_code># x축 cty
qplot(data = mpg, x = cty)
# x축 drv, y축 hwy
qplot(data = mpg, x = drv, y = hwy)
# x축 drv, y축 hwy, 선 그래프 형태
qplot(data = mpg, x = drv, y = hwy, geom = "line")
# x축 drv, y축 hwy, 상자 그림 형태
qplot(data = mpg, x = drv, y = hwy, geom = "boxplot")
# x축 drv, y축 hwy, 상자 그림 형태, drv별 색 표현
qplot(data = mpg, x = drv, y = hwy, geom = "boxplot", colour = drv)<jupyter_output><empty_output><jupyter_text>함수의 기능이 궁금할 땐 Help 함수를 활용해 보세요<jupyter_code>?qplot<jupyter_output><empty_output><jupyter_text>혼자서 해보기 Q1. 시험 점수 변수 만들고 출력하기다섯 명의 학생이 시험을 봤습니다. 학생 다섯 명의 시험 점수를 담고 있는 변수를 만들어 출력해 보세요. 각 학생의 시험점수는 다음과 같습니다.`80, 60, 70, 50, 90` Q2. 전체 평균 구하기앞 문제에서 만든 변수를 이용해서 이 학생들의 전체 평균 점수를 구해보세요. Q3. 전체 평균 변수 만들고 출력하기전체 평균 점수를 담고 있는 새 변수를 만들어 출력해 보세요. 앞 문제를 풀 때 사용한 코드를 응용하면 됩니다.  정답 Q1. 시험 점수 변수 만들고 출력하기<jupyter_code>score <- c(80, 60, 70, 50, 90)
score<jupyter_output><empty_output><jupyter_text>Q2. 전체 평균 구하기<jupyter_code>mean(score)<jupyter_output><empty_output><jupyter_text>Q3. 전체 평균 변수 만들고 출력하기<jupyter_code>mean_score <- mean(score)
mean_score<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.1450041747843028, 'fraction_numerical': 0.04119120512106875, 'mean_word_length': 4.642072213500785, 'pattern_counts': {'":': 0, '<': 96, '<?xml version=': 0, '>': 76, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '19', 'dir': 'jupyter-structured-clean-dedup', 'id': '385803', 'license': 'MIT', 'n_tokens_mistral': 2400, 'n_tokens_neox': 2746, 'n_words': 437, 'path': 'R/Do_it_R/ipynb/Doit_part03.ipynb', 'repo_name': 'statKim/TIL', 'size': '3593'}