BASEMENT
R 프로그래밍 2주차 본문
https://www.r-project.org/에서 R설치
R studio 설치
r 변수명 규칙
- 리눅스 명령어와 유사
- 알파벳, 숫자, ' _ ', ' . '로 구성됨. ' - ' 사용하지 않음
- 파일명 첫글자로 숫자, ' _ ' 사용 불가
- 대문자와 소문자 서로 구분
- 변수값 대입은 <-, = 사용
- ex) x <- c(1:10)
- ;(세미콜론)은 명령문과 명령문을 구분 짓는 역할
- ls() : 생성된 변수의 리스트 출력
- rm() : 생성된 변수 삭제
- rm(list=ls()) : 모든 변수 삭제
- Is.na() : 변수에 na값이 저장되어 있는 지 확인
- na.omit : na값이 있는 행 모두 삭제 # 사용하지 않도록 주의!
r 패키지 설치
r studio 창에 입력
install.packages("패키지명")
library(패키지명)
install.packages로 패키지 설치 후 library로 불러서 사용함
# 패키지 설치 시 큰따옴표를 입력해야 하지만 library로 불러올 때는 큰따옴표 사용하지 않음
r 도움말
?명령어 입력
ex) ?mad를 입력 -> Help창에 mad에 대한 정보를 알려줌
데이터 입출력
- read.csv() : csv파일을 데이터 프레임으로 읽어옴
- write.csv() : 데이터 프레임을 csv파일로 저장
data(iris)
head(iris)
write.csv(iris,file="newiris.csv",row.names=FALSE)
newiris<-read.csv("newiris.csv")
head(newiris)
newiris2<-read.table("newiris.csv",sep=",",header=T)
save(newiris2, file="newiris2.RData") load("newiris2.RData")
- summary() 요약
- str() 문자
- dim() 데이터프레임의 길이
- mean() 평균
- sd() 표준편차
- var() 분산
- mad() 중위수 절대편차
- quantile() 4분위수
- diff() 각 수들의 차이
데이터 타입
1) 벡터
한 개 이상의 원소로 구성된 자료구조. R의 자료 객체 중에서 가장 기본이 되는 자료. 객체를 의미함
기본함수 c()
-
length : 자료의 개수
-
mode : 자료의 형태
-
dim : 각 차원 벡터의 크기
-
dimnames : 각 차원 리스트의 이름
2) 행렬
동일한 형태로 구성된 2차원의 데이터 구조
행의 차원과 열의 차원을 갖고 있으며, 벡터와 마찬가지로 하나의 행렬은 수치형, 문자형, 논리형 중 한 가지 형태의 원소만 갖음
3) 배열
행렬을 2차원 이상으로 확장시킨 객체
2차원 구조로 이루어진 행렬도 일종의 배열. 일반적으로 3차원 이상의 데이처 객체를 배열이라 함
4) 리스트
서로 다른 형태의 데이터들(숫자, 문자형)로 구성된 객체
행렬과 배열이 동일한 형태의 원소로 이루어진 객체인 반면, 리스트를 구성하는 성분은 서로 다른 형태의 원소 가능, 길이도 다를 수 있음
- length : 자료의 개수
- mode : 자료의 형태
- names : 각 구성요소의 이름
5) 데이터 프레임
형태가 일반화된 행렬(matrix)
데이터 프레임이라는 하나의 객체에 여러 종류의 자료가 들어갈 수 있음
행렬, metrix 등 정형된 형태로 다른 형태의 데이터가 들어갈 수 있음
분석이나 모형 설정에 적합한 자료 객체
데이터 프레임의 각 열은 각각 변수와 대응
백터 연산
- union(x,y) - 합집합
- intersect(x,y) - 교집합
- setdiff(x,y) - x를 기준으로 차집합
- setequal(x,y) - 집합이 동일한지 확인
벡터 논리연산자
- & - and
- | - or
R 기본 함수
- min(x) : 벡터에서 최소값
- max(x) : 벡터에서 최대값
- pmin(x1,x2) : 두 벡터의 상응하는 원소들 중 작은 값
- pmax(x1,x2) : 두 벡터의 상응하는 원소들 중 큰 값
- range(x) : 벡터의 범위
- mean(x) : 평균
- sd(x) : 표준 편차
- var(x) : 분산
- median(x) : 중앙값(중위수)
- quantile(x,p) : (100*p)%에 해당하는 값
- cor(x,y) : 상관 계수
조건문
조건문 예제
if(mean(x) > mean(y))
print(mean(x))
print(var(x))
} else {
print(mean(y))
print(var(y))
}
x의 평균값이 y의 평균값보다 크다면, x의 평균값과 분산값을 출력하고, 아니면 y의 평균값과 분산값을 출력해라
반복문
1. for
x<-0
for(i in 1:10) {x <- x+i}
2. while
while(조건){실행문}
i <- 1
while(i<=5) {
print(rep(i,i))
i <- i+1
}
3. repeat
repeat{실행문}
i <- 1
x <- 0
repeat{
if(i>10) break
x <- x+i
i <- i+1
}
x
함수
R의 내장함수에 사용자가 원하는 특정한 기능이 구현되어 있지 않다면, 사용자 스스로 직접 함수를 생성하여 원하는 기능 수행 가능
function_name <- function(인자,인자,...) {
함수본문
return(반환값)
}
데이터 전처리
- 데이터 분리/병합/정렬
- 주어진 데이터를 조건에 따라 분리 : split(), subset()
- 주어진 데이터를 조건에 따라 병합 : merge()
- 주어진 데이터를 직접 정렬해주는 함수 : sort()
- 데이터를 정렬했을 때의 순서를 반환 : order()
1) split
split(데이터명, 데이터명$조건)
2) subset
주어진 조건을 만족하는 데이터 선택
subset(데이터명, 조건 & 조건) -> 텍스트 처리에 주로 사용됨
ex) subset(iris, Species == "setosa" & Sepal.Length > 5.0)
subset(iris, select=c(Sepal.Length, Species))
3) sort
x <- c(20, 11, 33, 50, 47)
sort(x)
sort(x, decreasing=TRUE) -> 내림차순
* order는 정렬을 해주는 함수가 아니라 정렬했을 때 순서만 알려주는 함수
그 외
순서형 변수 -> levels을 꼭 붙여줘야 함
문자열에는 " " 만 가능
팩터 - 범주형 데이터를 표현하기 위한 데이터 타입. 범주형 데이터는 또 다시 명목형과 순서형으로 구분됨
ordered, is.ordered
attach() - 데이터 프레임에서 $ 사용 안해도 됨
detach() - attach를 풀어줌
'Programming > R' 카테고리의 다른 글
R 프로그래밍 - 7주차 (0) | 2020.08.11 |
---|---|
R 프로그래밍 6주차 (0) | 2020.07.20 |
R 프로그래밍 5주차 (0) | 2020.07.18 |
R프로그래밍 4주차 (0) | 2020.07.06 |
R프로그래밍 3주차 (0) | 2020.07.05 |