반응형
1.프로그램 설치
1.R 설치
2.R 스튜디오 설치
https://rstudio.com/
2.R의 특징
오픈소스, 다양한 운영체제에서 사용할 수 있음 | ||||||||||
우수한 데이터 핸들링 : 텍스트, CSV, 엑셀, SAS, SPSS, DB 등 지원 | ||||||||||
인터프리터 | ||||||||||
우수한 그래픽 기능 : 2D, 3D, 동적 그래프 지원 | ||||||||||
다양한 형태의 데이터 구조를 지원하므로 분석 대응력이 좋음 | ||||||||||
열우선 배열 | ||||||||||
Index 번호는 1부터 시작 | ||||||||||
1:5는 1부터 5까지의 수를 의미함 |
3.R의 연산자 우선순위
연산자 우선순위 | 의미 | 예 |
^ , ** | 지수 | 2^4 |
+ , - | 양수, 음수 부호 | +4, -2 |
: | 수열 생성 | 1:5 |
%any% | 특수 연산자 | %/% : ahrt, %% : 나머지, %*% : 행렬곱 |
* , / | 곱셈 , 나눗셈 | 2*4, 10/3 |
+ , - | 덧셈, 뺄셈 | 4+2 , 5-2 |
== | 같음 비교 | 3==5 #FALSE |
!= | 다름 비교 | 3!=5 #TRUE |
>= , <= , < , > | 이상 , 이하, 작다 , 크다 | 3>=5 , 3<=5 #FALSE, TRUE |
! | 논리부정 | !(3==5) |
&,&& | 논리AND | & : 논리 연산 데이터가 하나 이상인 경우 사용 && : 논리 연산 데이터가 하나인 경우 사용 |
|,|| | 논리OR | 논리 AND와 같은 규칙 |
~ | 식(formula) | 종속변수1+종속변수2+.................~독립변수1+독립변수2................ |
-> , ->> | 왼쪽 값을 오른쪽으로 대입 | 3 -> a , 3 ->> a |
= | 오른쪽 값을 왼쪽으로 대입 | a = 3 |
<- , <<- | a <- 3, a <<- 3 |
4.R의 데이터형(=타입)
- R의 데이터 형은 기본형,구조형,복합형으로 나눌 수 있으며,Special Values가 존재함
R의 데이터 구조 - Vector
-vector - c함수로 생성
- 하나 이상의 스칼라(=길이가 1인 백터)원소들을 갖는 단순한 집합
- 숫자,문자,논리형 데이터를 원소(Element)로 사용할 수 있음
- 동일한 자료형을 갖는 값들의 집합으로 하나의 열(Column)로 구성됨
- 백터 생성함수 : c(value1, value2,..........),seq(from, to, by), rep(x, times, each)
- vector - sep함수로 생성
- sep(from=1, to=1, by, length)
- ex)v1 = seq(1,5)
- ex)v2 = seq(1,10,2)
- ex)v3 = seq(1,10,length=3)
- ex)v4 = seq(1,10,length=4)
- ex)v5 = seq(1,3,length=5)
- from부터 to까지 by씩 건너뛰는 수로 구성된 백터 생성
- length를 사용하는 경우 from 부터 to까지 수 중 length개 만큼의 수를 원소로 하며 원소들 간 균등 간격을 갖음
-vector - rep 함수로 생성
- rep(x,time,each)
- v1 = rep(1,5)
- v2 = rep(1,time=5)
- v3 = rep(3:5, time=3)
- v4 = rep(3:5, each=2)
- v5 = rep(seq(1,5,2),2)
- x : 스칼라 또는 백터 등을 사용할 수 있음
- time : x가 백터일 경우 처음부터 끝까지를 time에 지정된 수 만큼 반복
- each : x가 백터일 경우 각 원소를 each에 지정된 수 만큼 반복
vector의 인덱싱
- 대괄호를 사용하며, 위치 index를 사용하거나 조건문, 순열 등을 사용할 수 있음
v[n] | vector의 n번째 원소 반환, n=1부터 시작 |
v[-n] | vector에서 n번쩨 원소를 제외한 나머지 원소들을 반환 |
v[조건] | 조건을 만족하는 원소들 반환, 조건의 결과는TRUE/FALSE로 구성 |
v[start:end] | start번째 원소부터 end번째 원소까지 반환 |
R의 데이터 구조 - matrix
matrix(행렬)
- 데이터의 형태가 2차원으로 행(row)과 열(column)로 구성
- 하나의 데이터 유형만 가능, 역행렬은 solve()로 구함
행렬 생성함수
- matrix(data=NA,nrow=1,ncol=1,byrow=FALSE, dimnames=NULL)
- rbind(vectors or matrices), cbind(vectors or matrices)
matrix관련함수, 인덱싱
- matrix는 2차원이므로 인덱싱에서 행,열에 대한구분이 필요함
dim(x),dim(x) <-- | 행렬 차원 확인, 부여 | ||
nrow(x),ncol(x) | 행의 수, 열의 수 | ||
m[nrow], m[ncol] | nrow,ncol 위치의 원소 추출 | ||
m[nrow,], m[-row,] | 특정 행 접근 | ||
m[,ncol], m[,-ncol] | 특정 열 접근 | ||
dimnames(m) , dimnames(m) <-- | 각 차원의 이름 확인,부여 | ||
rownames(m) , rownames(m) <-- | 각 행의 이름 확인, 부여 | ||
colnames(m), colnames(m) <-- | 각 열의 이름 확인.부여 | ||
t(m) | 전치행렬 반환 | ||
diag(m) | 대각원소 반환 |
R의 데이터 구조 - data.frame
- data.frame
- 엑셀의 WorkSheet와 같은 구조의 2차원 데이터
- '여러가지 데이터 유형'을 가질 수 있음, 백터 별로 다른 데이터 유형 가능
- 백터가 모여 데이터 프레임을 구성함
- data.framr 생성함수
- data.frame(vectors or matrices, stringsAsFactors) 백터의 길이는 모두 같아야 함
- data.frame(변수명=백터,................,stringAsFactors) stringAsFactors를 TRUE로 지정하면 문자열을 factor형으로 저장함
data.frame 인덱싱
df[nrow,ncol] | 특정 행, 열의 원소 추출, nrow, ncol --> Scalar |
df[nrow,] | 특정 행 추출, data.frame반환 |
df[,ncol] | 특정 열 추출, vector반환 |
df[ncol] | 특정 열 추출, data.frame반환 |
df[[ncol]] | 특정 열 추출, vector반환 |
df[vector,vector] df[cevtor,] df[,vector] |
해당 vector목록에 해당하는 data.frame 반환 vector : 2개 이사으이 원소를 갖는 vector |
fd$name | 특정 열 추출,vector반환 |
df[-ncol] | 특정 열 제외하고 반환, vector반환 |
R의 데이터 구조 - list
-list
- 서로 다른 데이터 타입을 담을 수 있음
- 리스트에 저장된 데이터를 index 또는 key를 사용해 접근함
- 생성함수 : list(key=value,key=value.......)
외부 데이터 사용
- 작업환경 설정
- setwd('디렉토리 이름')
- getwd() : 현재 작업 디렉터리 이름 반환
CSV파일 불러오기, 저장하기
- read.csv('파일이름',fileEncoding=UTF-8-BOM')
- write.csv('파일이름',row.names=FALSE)
- dataframe = read.csv('data/easySample.csv',fileEncoding="UTF-8-BOM")
- write.csv(dataframe,'data/mySample.csv',row.names=FALSE)
- write.csv(dataframe,'data/mySample_wr.csv')
txt파일 불러오기
- read.table('파일이름.txt',sep=구분자,col.names=컬럼이름목록)
- cname <-c('ID','name','birth','dept','english','japanese','chinese')
- ex)dataframe = read.table('data/easySample.txt', ',', col.names=cname)
- print(dataframe)
사용하는 객체를 저장하고 불러오기
- save(객체.file="파일이름.Rdata")
- load("파일이름.Rdata")
- ex)dataframe = read.csv('data/mySample.csv')
- save(dataframe,file='data/myObject1.Rdata')
- load('data/myObject1.Rdata')
- print(dataframe)
data.frame핸들링
새로운 변수 만들기 | 데이터프레임$변수명 또는 데이터프레임['변수명'] <-추가할 데이터 백터 | |
조건으로 선택 | subset(x,subset=(조건)) sebset=생략가능 | |
목록으로 선택 | subset(x,subset=(조건),select=열/열 목록) | |
열,열 목록 제거 | subset(x,subset=(조건),select=-열/열 목록) | |
열 이름 바꾸기 | colnames(x) <-, colnames(x)[index] <-- |
R의 데이터셋 사용
head(x,n) | 데이터 셋 처음 여셧개 반환 n지정 시 해당 개수만큼 반환 |
tail(x,n) | 데이터 셋 마지막 여섯개 반환 n지정 시 해당 개수만큼 반환 |
View(x) | 창을 열고 엑셀과 유사한 형태로 데이터셋을 보여줌 |
summary(x) | 데이터 셋을 구성하는 항목의 기초 통계량을 보여줌 (최솟값,1사분위수,중간값,평균,3사분위수,최댓값) |
str(x) | 데이터의 구성을 표시함 |
attach(x) | 데이터셋을 고정으로 사용하겠다고 선언함, detach할 때까지 유효 변수명만으로 바로 데이터에 접근 가능, iris$Sepal.Width -> Sepal.Width |
detach(x) | 고정된 데이터셋 사용을 해제 선언함 |
반응형
'빅데이터분석준전문가자격증' 카테고리의 다른 글
ADsP. PART.3 - 데이터 분석 - 데이터 마트 - 1 (0) | 2022.06.25 |
---|---|
ADsP. PART.3 - 데이터 분석 - R의 기초 - 2 (0) | 2022.06.24 |
ADsP. PART.3 - 데이터 분석 - 데이터 분석 기법의 이해 (0) | 2022.06.23 |
ADsP. PART.2 - 데이터 분석 기획 - 분석마스터 플랜 (0) | 2022.06.23 |
ADsP. PART.2 - 데이터 분석 기획 - 데이터분석 기획의 이해 (0) | 2022.06.20 |