BeFRee
Day 1. R 그냥 따라 해보기 본문
###
#
# DAY 1. Get to Know "R"
#
# First.Version : 2018/04/20
# Last. Version : 2018/04/22
#
# R 스크립트 파일 다운로드 : BeFRee.R.Day.1.R
#
###
# 0. 그냥 한번 해봅시다.
# 계산기처럼 단순 수식을 셈할 수 있습니다.
1 + 2
# 변수를 사용하면 매번 수식을 반복해서 쓸 필요가 없습니다.
# 엑셀에서 셀에 숫자를 써넣는 것과 같습니다. L13 에 1 입력, L14에 2입력
a <- 1 b <- 2
# 변수로 수식을 만들어 셈할 수 있습니다.
# 엑셀에서 셀의 위치 값으로 수식을 만들어 셈하는 것과 같습니다.
# 셀의 이름 값과 같다고 봐야 하겠으나.
# 셀에 이름 넣는 방법을 모르는 경우도 많으니 일단 위치 값이라 생각하는 것으로...
a+b
# 결과를 다른 변수에 넣고, 그 값을 표시하기도 합니다.
c <- a + b c
# 변수는 매번 같은 수식을 반복적으로 쓰지 않아도 되고
# 변수 이름을 잘 사용하면 어떤 이유로 수식을 사용하고 있는지 표기할 수도 있습니다.
# average_sales = total_sales / total_customer
a+b+c # [1] 6 (a+b+c) / c # [1] 2 a * b / c # [1] 0.6666667
# 수식 실행 후 나오는 결과에 있는 [1]은 첫번째 값 이라는 뜻입니다.
# 행의 첫번째 데이터가 몇번째 순서인지 보여주는 것이라 생각하시면 됩니다.
# 자세한 설명은 Day 1.에서 설명하는 것으로....
x <- 2 x # [1] 2 x + 1 # [1] 3 y <- 10 y # [1] 10 x + y # [1] 12 y / x # [1] 5
# 변수에는 숫자 하나만 넣는 것이 아니라 연속된 숫자들도 넣을 수 있습니다.
# 데이터 형식에 대한 설명도 다음에 하겠습니다. (오늘은 그냥 해보기만 합니다.)
temp <- 1 temp # [1] 1 temp <- c(1, 2, 3, 4) temp # [1] 1 2 3 4
# 변수에 텍스트를 넣을 수도 있습니다.
# 이것도 데이터 형식에 따라 다른 결과가 나오는 것이지만 그냥 따라서 해보기만 합니다.
temp <- "Hello World" temp # [1] "Hello World" temp <- c("Hello", "World") temp # [1] "Hello" "World"
# 1~ 20,000에서 1000개의 숫자를 무작위로 뽑아서 그 숫자들의 최소값, 평균값, 최대값 등을 알아봅니다.
x1 <- sample (1:20000, 1000, replace = F)
View(x1) # x1 열어 보기
min(x1) # 최소값
max(x1) # 최대값
mean(x1) # 평균값
median(x1) # 중앙값
sd(x1) #표준편차
# 그래프도 한번 그려 봅니다. 그냥 한번 무작정.
# 일단은 이렇게도 할 수 있구나 라고 확인만 해 보는 는 것만 보는 것으로...
# iris 꽃에 대한 데이터셋을 불러 오고..
data(iris) # data (데이터셋 이름)
# 꽃받침 길이에 대한 산점도를 그려도보고
plot(iris$Sepal.Length) # plot (x축 데이터)
# 꽃받침 길이와 너비에 대한 산점도를 그려봅니다.
plot(iris$Sepal.Length, iris$Sepal.Width) # plot (y축 데이터, x축 데이터)
# 이렇게 작성할 수도 있습니다.
plot(iris$Sepal.Width ~ iris$Sepal.Length) # plot (x축 데이터 ~ y축 데이터)
# 구분되지 않으니 색으로 구별해보는 방법도...
install.packages("RColorBrewer") # 일단 필요한 패키지를 설치합니다. library(RColorBrewer) # 로딩하구요. plot(Sepal.Width ~ Sepal.Length, data=iris, col=brewer.pal(3, "Set2")[iris$Species]) legend(x=6.5, y=4.5, legend=levels(iris$Species), col=brewer.pal(3, "Set2"), pch=1) plot(Petal.Width ~ Petal.Length, col=c("black", "red", "blue")[Species], pch=(15:17)[Species], data=iris) legend("topleft", legend=levels(iris$Species), col=c("black", "red", "blue"), pch=15:17)
# 히스토그램은 hist()라는 함수를 사용합니다.
x <- hist(iris$Sepal.Length) segments(x0=x$mids-0.25, x1=x$mids+0.25, y0=x$counts, y1=x$counts, lw=4, col="red")
#박스플롯 그래프는 boxplot() 함수를 사용합니다.
boxplot(Sepal.Width ~ Species, data=iris)
# 산점도 행렬을 그려보면 항목별 상관관계를 간략히 알아볼 수도 있습니다.
# 표는 복잡해 보일 수 있습니다.
pairs(iris)
#EOF