본문 바로가기
IT

[R Programming] - 기본 명령어 및 데이터 불러오기

by urosie 2019. 5. 26.

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) 의 실행결과는 아래와 같아요. 아래는 무엇을 의미하는 걸까요?

데이터의 빈도를 나타내주는 table 함수

데이터의 빈도를 나타내주기 때문에 위의 결과는 다이아몬드 데이터에서 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))
}

cut, color, clarity 데이터의 빈도수 구하기

위 코드에서 c 함수는 벡터를 만드는 함수로 인수 값으로 벡터에 넣고 싶은 값들을 열거하면 벡터를 만들 수 있어요.

 

마지막으로 빈도를 구했으니 백분율을 구해볼께용
기본적으로 백분율 : (빈도 / 합계) * 100 이라는 공식은 대부분 아는 공식일꺼예요!

R에서는 prop.table 함수를 써서 구할 수 있습니다.

prop.table(table(diamonds$cut))*100

prop.table에 cut의 빈도를 넣어주고 곱하기 100을 하면 아래와 같이 결과를 얻을 수 있어요!

cut의 백분율 구하기

빈도를 구한 것과 마찬가지로 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)

소수점 첫번째 자리까지 구한 cut의 백분율


또 빈도를 구한 것과 마찬자기로 여러개의 백분율을 구할 때 역시 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

댓글