### # # DAY 0. Get to Know "R" # # First.Version : 2018/04/20 # Last. Version : 2018/04/22 # # 출처: http://citimonolog.tistory.com/564 [BeFRee] # ### # 0. 그냥 해보기. 그냥 해봅시다. # 계산기처럼 단순 수식을 셈할 수 있습니다. 1 + 2 # 변수를 사용하면 매번 수식을 반복해서 쓸 필요가 없습니다. # 엑셀에서 셀에 숫자를 써넣는 것과 같습니다. L13 에 1 입력, L14에 2입력 a <- 1 b <- 2 # 변수로 수식을 만들어 셈할 수 있습니다. # 엑셀에서 셀의 위치 값으로 수식을 만들어 셈하는 것과 같습니다. # 셀의 이름 값과 같다고 봐야 하겠으나. # 셀에 이름 넣는 방법을 모르는 경우도 많으니 일단 그런 것으로... 간주하기로... # 포인터니 어드레스니.. 복잡. a + b # 결과를 다른 변수에 넣고, 그 값을 표시하기도 합니다. c <- a + b c # [1] 3 # 변수는 매번 같은 수식을 반복적으로 쓰지 않아도 되고 # 변수 이름을 잘 사용하면 어떤 이유로 수식을 사용하고 있는지 표기할 수도 있습니다. # 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.에서 설명하는 것으로.... # 변수에는 숫자 하나만 넣는 것이 아니라 연속된 숫자들도 넣을 수 있습니다. # 데이터 형식에 대한 설명도 다음에 하겠습니다. (오늘은 그냥 해보기만 합니다.) temp <- 1 temp # [1] 1 # 만약 같은 변수에 다른 값을 넣으면, 데이터가 쌓이는것이 아니고 새로 정의됩니다. temp <- c(2, 3, 4, 5) # 이렇게 값을 넣으면 결과가 1, 2, 3, 4, 5로 되는 것이 아니라 # 아래에 같이 2,3,4,5 라고 바뀌는 것입니다. temp # [1] 2 3 4 5 # 변수에 텍스트를 넣을 수도 있습니다. # 이것도 데이터 형식에 따라 다른 결과가 나오는 것이지만 그냥 따라서 해보기만 합니다. 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) # 로딩하구요. # col=brewer.pal이라는 옵션을 적용하고 [iris$Scpecies]로 구분하라고 하면 됩니다. # legend()는 그래프 범례를 보이는 코드입니다. plot(Sepal.Width ~ Sepal.Length, data=iris, col=brewer.pal(3, "Set1")[iris$Species]) legend(x=6.5, y=4.5, legend=levels(iris$Species), col=brewer.pal(3, "Set1"), pch=1) # 이렇게 코딩할 수도 있습니다. plot(Sepal.Width ~ Sepal.Length, data=iris, col=c("black", "red", "blue")[Species], pch=(15:17)[Species]) 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