R 이라는 언어는 통계 계산과 그래픽을 위한 프로그래밍 언어 입니다. :)
통계쪽, 데이터 분석쪽 에서 많이 사용하는 것 같아요.
R과 파이썬을 많이들 쓰는 것 같습니다.
또 여러 OS에서 동작하기 때문에 사용에 편리하기도 합니다.
(R은 윈도, 맥 OS 및 리눅스를 포함한 UNIX 플랫폼에서 이용 가능)
일단 R 기본 명령어에 대해서 정리를 해보았어요.!
R을 편하게 공부하기 위해서는 R Studio를 설치해주세요~!
[R 기본 명령어 정리]
먼저 패키지 설치를 위한 명령어 install.package 입니다.
핵심적인 패키지는 R과 함께 설치되지만, 그 이외에 패키지들은 직접 설치를 해주어야 합니다.!
# 1. 패키지 설치하기와 로딩하기 ----
install.packages("tidyverse")
install.packages("RColorBrewer")
install.packages("epiDisplay")
install.packages("writexl")
install.packages("prettyR")
install.packages("e1071")
install.packages("psych")
↑이런 식으로 명령어를 수행해서 패키지를 설치해주어야 해당 패키지내 함수 등 사용이 가능합니다!
설치한 후에 해당 패키지를 작업 영역에서 사용할 수 있게 불러와야 하는데요
그 때는 library명령어를 사용해요.!
library(tidyverse)
library(RColorBrewer)
library(epiDisplay)
library(writexl)
library(prettyR)
library(e1071)
library(psych)
↑ 위에 처럼 이렇게 명령어를 실행해주어야 사용가능하게 됩니다.
패키지 설치와 로딩이 끝나면 마지막으로 작업공간을 설정해주면 프로그래밍 시작 준비가 끝납니다.
작업공간은 setwd로 설정하고 설정한 공간은 getwd로 언제든지 확인할 수 있어요.
파일이나 데이터를 불러오거나 저장할때 여러곳에서 가져오고 저장하는 것보단
한 곳에서 처리하는게 훨씬 편하기 때문에 작업공간을 확인하고 설정하는 일을 먼저 해줘야 해요.
# 2. 작업공간 설정하기 ----
setwd("d:/urosie/")
getwd() #setwd 작업 확인하기
이제 데이터를 읽어오는 간단한 작업부터 시작해보겠습니다.
# 3. 데이터 읽어오기 ----
데이터를 읽어오는 연습은 ggplot2패키지에 내장되어있는 다이아몬드 데이터를 사용해서 확인해볼 수 있어요.
# 데이터 읽기 - table(data$variable)
table이라는 함수를 통해서 읽어와볼께요.
table은 데이터의 빈도를 나타내주는데 아래처럼 table(data$variable) 의 형태로 실행하면 됩니다.
table(diamonds$cut) 의 실행결과는 아래와 같아요. 아래는 무엇을 의미하는 걸까요?
데이터의 빈도를 나타내주기 때문에 위의 결과는 다이아몬드 데이터에서 cut 속성에 대해 fair가 1610개, good이 4906개 등으로 설명할 수 있어요!
수십만개의 데이터에서 속성별로 빈도를 구하려면 그것도 엄청 시간이 걸리는 일이겠죠!
R을 이용하면 1초도 안되어서 금방 결과를 볼 수 있어요 :)
만약에 수십개의 결과 중, 가장 빈도수가 높은 것과 낮은 것을 한 눈에 파악하려면 어떻게 해야할까요?
바로 sort 라는 함수를 사용해서 실행하면 됩니다.
sort( table(diamonds$cut) , decreasing = TRUE)
ideal 속성이 가장 많고 fair가 가장 적네요!
만약 거꾸로 보고싶다면 decreasing = FALSE 를 써주면 되겠죠?ㅎ_ㅎ
그리고 한가지 더!
만약, cut 뿐 아니라 여러개의 속성도 같이 빈도수를 구해보려면 어떻게 해야할까요?
프로그래밍을 해오신 분들이라면 익숙하시겠지만, for 문을 사용하면 됩니다.!
for(i in c("cut", "color", "clarity")) {
sort( table(diamonds[,i]) , decreasing = TRUE)
print(sort( table(diamonds[,i]) , decreasing = TRUE))
}
위 코드에서 c 함수는 벡터를 만드는 함수로 인수 값으로 벡터에 넣고 싶은 값들을 열거하면 벡터를 만들 수 있어요.
마지막으로 빈도를 구했으니 백분율을 구해볼께용
기본적으로 백분율 : (빈도 / 합계) * 100 이라는 공식은 대부분 아는 공식일꺼예요!
R에서는 prop.table 함수를 써서 구할 수 있습니다.
prop.table(table(diamonds$cut))*100
prop.table에 cut의 빈도를 넣어주고 곱하기 100을 하면 아래와 같이 결과를 얻을 수 있어요!
빈도를 구한 것과 마찬가지로 sort를 적용하면 아래와 같아요~
기본적인 함수 사용법을 알수록 쉬워지는 R!!
sort( prop.table(table(diamonds$cut))*100 , decreasing = TRUE)
위에 캡처에서 보시면 아시겠지만, 백분율을 구하게 되면 소수점 이하 6자리까지 표시를 해줘요.
보통 소수점 6자리까지는 많이 보지 않기 때문에, 소수점 처리를 해줄께요~!
소수점 처리는 round 함수를 사용하면 됩니다. digits 으로 조건값을 주면 되요.
round(sort( prop.table(table(diamonds$cut))*100 , decreasing = TRUE) , digits=1)
또 빈도를 구한 것과 마찬자기로 여러개의 백분율을 구할 때 역시 for문을 사용하면 되요.
for ( i in c("cut", "color", "clarity")) {
print(sort( prop.table(table(diamonds[,i]))*100 , decreasing = TRUE))
print(round(sort( prop.table(table(diamonds[,i]))*100 , decreasing = TRUE) , digits=1))
}
정리를 하면, 아래와 같아요!
패키지 설치 명령어 : install.package
패키지 로딩 : library
작업영역 설정 : setwd
작업영역 확인 : getwd
데이터빈도 구하기 : table
데이터 정렬 : sort
벡터값 만들기 : c
백분율 구하기 :prop.table
'IT' 카테고리의 다른 글
[R Programming] - 그래프 그리기! (0) | 2019.06.06 |
---|---|
R을 활용한 빅데이터 고급 분석 (0) | 2019.06.03 |
[네트워크] 공인 IP 사설 IP (0) | 2019.02.03 |
[안드로이드] setonclicklistener 를 찾다가 (0) | 2018.11.23 |
[안드로이드] Gradle (0) | 2018.11.18 |
댓글