2020. 7. 9. 14:46ㆍADP | ADsP with R/Knowledge
R언어와 사용법에 관한 게시글들은 "한국 데이터 산업진흥원"에서 출간한 국가공인 ADP/ADsP자격증을 위한 "데이터 분석 전문 가이드"에 서술된 수준에 한정지어 다루어 볼 것입니다.
ADP필기 준비를 위한 R의 기본적인 문법과 패키지들을 학습을 목표로 합니다.
1. 패키지(Package) 관련 함수
1. 패키지 설치와 사용을 위한 로드
install.packages("패키지 이름")
library(패키지 이름)
※ 여기서 패키지를 다운받을 때는 따옴표를 사용하지만, 사용하기 이전에 패키지를 로드할 때는 따옴표가 쓰이지 않는다.
2. R 패키지 도움말
library(패키지 이름) # 패키지 로드를 해야 패키지 정보 확인가능
?패키지 이름 # 방법1
help(패키지 이름) # 방법2
※ 위의 두 함수는 동일한 Help창을 띄운다.
2. R의 데이터 구조
1.벡터
- 하나의 스칼라값, 또는 하나 이상의 스칼라 원소들을 갖는 단순한 형태의 집합을 의미
x = c(1,10,24,40) # 숫자형 벡터
y <- c("사과","바나나","오렌지") # 문자형 벡터
z <- c(TRUE,FALSE,TRUE) # 논리 연산자 벡터
※ 논리 연산자에서, TRUE는 1의 값, FALSE는 0의 값을 할당받는 것과 같다. 이는 수치적인 의미를 갖는 논리연산자의 문법을 가진다른 언어들과 동일하다.
※ R에서 다른 언어와 마찬가지로 변수에 특정 값을 대입해줄 때, "="를 사용한다. 하지만, 다른 언어와 다르게 "<-"를 주로 사용하는 경향이 있다.
x = c(1,10,24,40) # 숫자형 벡터
y <- c("사과","바나나","오렌지") # 문자형 벡터
xy <- c(x,y)
※ 위의 경우처럼, c(벡터1,벡터2)로 변수에 값을 입력하면, 벡터가 연결된 새로운 벡터가 생성된다.
※ 계속 사용한 것처럼, 벡터를 생성할 때, 직접입력하는 법으로 var = c(value1, value2 ,.., )를 사용한다.
2.행렬
- 행과 열을 갖는 m X n 형태의 직사각형에 데이터를 나열한 구조
mx = matrix(c(1,2,3,4,5,6), ncol = 2)
mx
※ matrix 명령어의 첫 번째 인수는 들어갈 데이터(벡터)로 들어간다. 그리고 형태를 조정하기 위해, <ncol = > or <nrow = >를 정해 matrix의 shape을 정할 수 있다.
※ 그리고 행을 우선으로 채우는 방향(byrow = T), 열을 우선으로 채우는 방향(입력 X)를 통해 벡터 데이터가 행렬데이터로 변환될때 데이터의 형태를 정할 수 있다.
mx = matrix(c(1,2,3,4,5,6), ncol = 2)
mx
r1 = c(10,10)
c1 = c(20,20,20)
rbind(mx,r1)
mx = matrix(c(1,2,3,4,5,6), ncol = 2)
mx
r1 = c(10,10)
c1 = c(20,20,20)
cbind(mx,c1)
※ rbind와 cbind를 이용해 기존 벡터를 합쳐 행렬로 만들 수 있다. rbind는 기존의 행렬에 행을 추가하는 형태로 데이터를 결합, cbind는 기존의 행렬에 열을 추가하는 형태로 데이터를 결합한다.
3.데이터프레임
- 행렬과 유사한 2차원의 데이터 구조이고, 행렬과는 다르게 각 열이 서로 다른 데이터 타입을 가질 수 있어 사용자가 다루기가 쉽다.
income = c(100,200,150,300,900)
car = c("kia","hyundai","kia","toyota","lexus")
marriage = c(FALSE,FALSE,FALSE,TRUE,TRUE)
mydat = data.frame(income,car,marriage)
mydat
※ 각 column의 벡터들은 서로 다른 type을 가지고 있다. 이처럼 여러 형태의 데이터를 하나의 데이터 구조로 통합시킬 수 있으며 조작이 용이하다.
그 외 리스트와 배열과 같은 구조도 존재한다. 이는 다음 예시에 사용될때 언급하겠다.
3. 외부 데이터 불러오기
1. .csv 파일 불러오기
data1 <- read.table("D:\\DATA\example.csv", header = T, sep = ",")
data2 <- read.csv("D:\\DATA\example.csv", header = T)
※ data1은 read.table함수를 통해서 csv 파일을 불러온다. 이때, header는 파일의 첫 줄을 변수명으로 지정하는 것이고, sep은 csv의 데이터가 쉽표로 구분된 파일임을 인지시켜준다.
※ data2는 read.csv함수를 통해서 csv 파일을 불러온다. read.table과 다른 점은 sep를 별도 지정할 필요가 없다는 것이다.
2. .txt 파일 불러오기
data3 <- read.table("D:\\DATA\\example.txt")
※ csv에서도 사용한 함수 read.table을 통해 txt파일을 불러올 수 있다. 다른점은 별도 구분자를 지정해주지 않으면 txt파일로 인식한다는 것이다.
3. 엑셀파일 불러오기
library(RODBC) # 패키지 로드
new <- odbcConnectExcel("c:\\data\\mydata") # 엑셀파일 경로 입력
mydata <- sqlFetch(new, "Sheet1") # 엑셀파일의 워크시트 이름 입력
close(new)
※ 엑셀파일을 직접 엑셀로 실행시킨 뒤 csv파일로 저장하여 csv파일을 읽을 수도 있다. 하지만 R에서 지원하는 RODBC라는 패키지를 통해서 직접 읽을 수도 있다.
'ADP | ADsP with R > Knowledge' 카테고리의 다른 글
[ADP] R - 결측값 처리와 이상값 탐색 (0) | 2020.07.14 |
---|---|
[ADP] R-데이터 마트(2) / sqldf / plyr / data.table (0) | 2020.07.14 |
[ADP] R-데이터 마트(1) / reshape패키지(metl,cast함수) (1) | 2020.07.13 |
[ADP] R-기초(3) : 사용자 정의 함수 / 그래픽 기능(plot) / 기타 유용한 기능 (0) | 2020.07.13 |
[ADP] R-기초(2) : R 기초통계연산 / R 데이터 핸들링(인덱싱, 슬라이싱) / 반복문과 조건문 (0) | 2020.07.13 |