"R 기본"의 두 판 사이의 차이
DB CAFE
(→detach()) |
(→예외 처리) |
||
89번째 줄: | 89번째 줄: | ||
tryCatch() 함수로 예외처리 하고 넘어갈 수 있음 | tryCatch() 함수로 예외처리 하고 넘어갈 수 있음 | ||
− | + | <source lang=r> | |
result = tryCatch({ | result = tryCatch({ | ||
..실행 코드.. | ..실행 코드.. | ||
102번째 줄: | 102번째 줄: | ||
cleanup-code | cleanup-code | ||
}) | }) | ||
+ | </source> | ||
=== 파일읽기/쓰기 === | === 파일읽기/쓰기 === |
2021년 1월 8일 (금) 17:19 판
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
목차
1 R명령어[편집]
1.1 파이프 오퍼레이터 (%>%)[편집]
- 파이프 오퍼레이터는 R에서 동일한 데이터를 대상으로 연속으로 작업하게 해주는 오퍼레이터(연산자).
- %>%를 사용하면 함수 간의 관계를 매우 직관적으로 표현
일반함수 | R 표현.방법 |
---|---|
F(x) | x %>% F |
G(F(x)) | x %>% F %>% G |
- 예제)
x = c(0.3078, 0.2577, 0.5523, 0.0564, 0.4685,
0.4838, 0.8124, 0.3703, 0.5466, 0.1703)
1) 일반 언어에서 처리
x1 = log(x)
x2 = diff(x1)
x3 = exp(x2)
round(x3, 2)
2) R 파이프 오퍼레이터로 처리
x %>% log() %>% diff() %>% exp() %>% round(., 2)
- 맨 왼쪽에는 원하는 변수를 입력
- %>% 뒤에는 차례대로 계산하고자 하는 함수 입력
- 변수의 입력값을 ()로 비워둘 경우, 오퍼레이터의 왼쪽에 있는 값이 입력 변수
- 반면 round()와 같이 입력값이 두 개 이상 필요하면 마침표(.)가 오퍼레이터의 왼쪽 값으로 입력
1.2 변수정의[편집]
1.2.1 rm()[편집]
- 변수 삭제
1.2.2 ls()[편집]
- 현재 선언해서 사용중인 변수목록
1.2.3 setwd()[편집]
- 작업파일 위치
1.2.4 getwd()[편집]
- 현재 설정된 파일위치
1.2.5 summary([데이터이름])[편집]
- 최솟값,1/4값,중간값,평균,1/3값,최댓값의 써머리 출력
1.2.6 data()[편집]
- 데이터를 사용하겠다는 선언
1.2.7 str()[편집]
- 데이터 구성/자료형 보기
1.2.8 attach()[편집]
- 변수/데이터 를 메모리에 고정
1.2.9 as.numeric()[편집]
- 데이터를 숫자형으로 변환
1.2.10 detach()[편집]
- 메모리에 선언된 변수 해제
1.3 예외 처리[편집]
tryCatch() 함수로 예외처리 하고 넘어갈 수 있음
result = tryCatch({
..실행 코드..
}, warning = function(w) {
# 경고 발생시
warning-handler-code
}, error = function(e) {
# 에러 발생시
error-handler-code
}, finally = {
# 무조건 수행 , 생략 가능
cleanup-code
})
1.4 파일읽기/쓰기[편집]
1.4.1 save(x,file="number.Rdata")[편집]
- x변수값을 "number.Rdata"로 저장
1.4.2 load("number.Rdata")[편집]
- 파일내용읽기
=== sink("output.txt")
=== scan("파일이름",what="디렉토리")
- 설정된 디렉토리에서 파일읽기
=== read.table("output.txt",header=T)
- 테이블 형태로 읽기 - read.table("testdata.txt", header=T)
1.5 CSV읽기[편집]
- read.csv("exeldata.csv")
1.6 데이터형[편집]
1.6.1 y[1,][편집]
- 첫행 읽기
1.6.2 y[,1][편집]
- 1열읽기
1.6.3 Vector[편집]
- v<- -5:5
- -5 ~ 5사이값을 할당
- v<-c(-5,5)
- -5,5를 할당
- v<-c(-5:5) - v<-seq(from=-5,to=5,by=1) - vector집합연산
- union(x,y)
- 합집합-중복제거
- intersect
- 차집합
- setdiff(x,y)
- x기준, y값을 빼준것
- is.element(2,x)
- 2가 x의 원소인지 검사
- x<-c(sort(sample(1:99,9)))
- 문자형vector
- unique(x) - match(x,c("A"))
- x의 데이터가 A와 같은지검사하고 같으면 1을 출력,NA는같지않음
- k<-paste(x[1],x[3])
- 벡터x에서 첫번째,세번째 문자를 k에 할당
- paste(x,collapse="%")
- x를 구성하는 문자열을 %로 연결하기
- paste(x,collapse=)
- x를 구성하는 문자열을 공백없이 연결
- substring(m,2:5)
- m객체 문자열에서 2~끝,3~끝,4~끝,5~끝 을 출력
- grep("Co",x)
- x에서 "Co"로 시작하는 것을 찾는다.
- 논리형 vector
- x<- runif(5)
- 0,1 사이의 난수 다섯 개를 만들어 x에 할당
- any(x>0.9)
- x값이 조건에 맞는지 검사
- all(x<0.9)
- 모든x의 값들이 0.9보다 작은지 검사
- is.vector(x) - is.factor(x)
- 데이터형이 팩터인지 확인
- x<-rnum(5)
- 평균이 0인 정규분포하는 변수5개를 x에 할당
1.6.5 Matrix[편집]
- 행렬
- 2차원 동일형 데이터 - 각 컬럼별 다른형 데이터 할당가능 - rbind()
- 벡터데이터를 모아서 열 데이터를 구성 - rbind(array1,array2,array3)
- cbind()
- 행데이터 구성 - cbind(array1,array2,array3)
- apply()
- 배열,행렬등에 함수를 적용한 결과를 벡터,배열,리스트로 변환 - apply(x,1,max)
- x데이터 1열의 최대값
- apply(x,1,sum) - apply(x,2,mean)
- lapply()
- 결과를 리스트로 반환
- sapply()
- 결과를 벡터,배열,행렬로 반환 - sapply(리스트,sum)
- tapply()
- 데이터를 그룹핑한후 함수 적용
- mapply()
- sapply()확장
- 여러개 벡터,리스트로인자를 받고 함수에 인자별 적용 결과를 반환 - mapply(sum,리스트1,리스트2)
- 리스트1+리스트2
- colnames(x)
- 컬럼 이름을 추가
- rownames(x)
- 로우 이름을 추가
- colSums(x)
- 컬럼의합
- rowSums(x)
- 로우의 합
- matrix(x,nrow=3)
- x데이터 열을 3으로 분리하여 행렬 구성 - 데이터를 매트릭스형으로 만들기 함수 - 매트릭스변수x * 3 은?
- 매트릭스 전체에 2를 곱한다.
- matrix(1:12,nrow=3,dimnames=list(c("R1","R2","R3"),c("C1","C2","C3","C4")))
- colSums(x)
- 행렬데이터x의 컬럼 합
- rowSums(x)
- 행렬데이터x의 로우 합
- colMeans - rowMeans
1.6.6 Data Frame[편집]
- data.frame() - 예시
- 데이터만들기
no<- c(1,2,3,4)
name<- c("A","B","C","D")
ages<-c(52,53,54,55)
sex<-c("M","M","F","M")
- 데이터프레임으로 변환
Insa<-data.frame(No=no,Name=name,Age=ages,Sex=sex)
- 데이터처리
insa[1,]
Insa[,2:4]
Insa[,-3]
1.6.7 Array[편집]
- 행렬을 2차원으로 확장한것 - x<-array(1:24,dim=c(2,3,4))
1.6.8 List[편집]
- 키,값 형태 데이터 - listdata<- c("A",c(12,21,33))
1.8 범위처리[편집]
1.8.1 mean()[편집]
- 평균
1.8.2 range[편집]
- 범위
1.8.3 sort[편집]
- sort(x,decreasing=TRUE)
1.8.4 length[편집]
- 길이
1.9 출력[편집]
1.9.2 print()[편집]
1.9.3 (괄호)[편집]
1.9.4 head()[편집]
1.9.5 tail()[편집]
1.9.6 View()[편집]
- 데이터를 보여주기
1.11 조건문[편집]
1.11.1 runif(1)[편집]
- 0~1사이 난수 1개 생성
1.11.2 if[편집]
- if(x>0) print(x) - if ( ) { .... }ifelse{ .... }else {... }
1.12 반복문[편집]
1.13 연산자[편집]
1.13.1 ![편집]
1.13.2 가감승제[편집]
- + - * /
1.13.3 비교[편집]
- == - !=
1.13.4 그리고[편집]
- &,&&
1.13.5 또는[편집]
- |,||
1.14 기호 =[편집]
1.14.1 [ i ][편집]
- i번째 요소
1.14.2 [ ( i ) ][편집]
- i번째 리스트
1.14.3 x $ a[편집]
- x에서 a컬럼
1.14.4 x $ "a"[편집]
- x에서 a컬럼
1.14.5 x[ i , j ][편집]
- i행 , j열
1.15 문자열[편집]
1.15.1 grep()[편집]
- grep("정규식",x,value-TRUE) - x에서 정규식 문자 찾기
1.15.2 nchar()[편집]
- nchar(x) - 문자열 수를 센다
1.15.3 paste[편집]
- paste(x,y) - 두개 문자열 합치기
1.15.4 substr[편집]
- substr(x,6,8) - 6번째에서 8번째까지 추출
1.15.5 strsplit[편집]
- strsplit(x,split-",") - 콤마기준으로 나누기