주제별 R 함수 보충
주제별 R 함수 보충
1. apply - tapply, sapply, lapply
예시: library(MASS) str(Cars93)
1) tapply
attach(Cars93)
a <- tapply(MPG.highway, Type, mean) 혹은
with(Cars93, tapply(MPG.highway, Type, mean))
2) sapply (벡터나 행렬에 사용)
sapply(Cars93, class)
3) lapply (리스트에 사용)
lapply(Cars93, mean)
2. names - names, renames, dimnames
1)
2)
3) dimnames (각 차원의 이름을 리스트로 전달함)
dimnames(M) <- list(gender = c("F", "M"), party = c("I", "R", "D") )
3. 조건문 - if, if~else, ifelse, for, while, repeat
1) if
- if(조건식) { 조건이 맞을 때 실행될 식 }
- else { 조건이 아닐 때 실행될 식 }
- else를 뒤에 붙이면 다조건 식 (if~ else)
2) ifelse
- ifelse(a, b, c): a가 참이면 b출력, 거짓이면 c출력
3) for
- 반복횟수가 정해진 반복을 수행할 때 사용
for (변수 in 횟수) {반복할 식}
4) while
- 횟수 지정없이 주어진 조건이 '참'이면 계속 반복
5) repeat
- { }안을 반복하되, break를 만나면 중지
4. 데이터 input/output
(1) read.csv / read.table 등
read.csv는 웹 상의 데이터를 읽을 때도 쓴다.
(2) scan
비정형의 문자열 데이터를 읽어옴
scan("Yes.txt", what= "", sep = "\n")
(3) sink
sink("File.txt")
~ 여러 내용
sink( )
~ 에 있는 내용이 작업디렉토리 내의 파일로서 보존됨
5. 문자열 작업
1) grep( x, s ): x가 s에서 어디 있는지 알려줌
2) nchar(x): x의 길이를 알려줌
3) paste("Oh", "Good", sep= " "): 하나의 문자열로 붙임
4) substr( "Great", 3, 5 ): 3-5까지 Great에서 추출
> eat
5) strsplit("2017-05-22", "-"): 앞의 것에서 -를 분리
> "2017" "05" "22"
6) gregexpr( x, s ): x가 s에서 어디 있는지 알려줌
> unlist( gregexpr( "-", "2017-05-22" )
> 3 5
7) gsub( x, replace, s ): s에 있는 x를 replace로 바꿈
> gsub( "-", ".", "2017-05-22" )
> "2017.05.22"
8) tolower( ): 대문자를 소문자로
toupper( ): 소문자를 대문자로
6. 텍스트 시각화
wordcloud 단어구름 패키지 이용
- scale=c(5,0.5) 그래프 내 문자 크기의 최소값과 최대값
- min.freq=1 그래프 내 문자로 반영될 최소의 빈도
- colors=rainbow(10) 컬러, 여기서는 10 계급의 무지개 색을 사용
- random.color=FALSE 컬러 배정을 임의로 할 것인가?
- random.order=FALSE 문자의 위치를 임의로 할 것인가?
- rot.per=0.25 수직방향 문자의 상대적 빈도
중간과정
wirte(unlist(ar1), "N.txt") 만든 데이터프레임을 txt파일로 다시 저장
tab <- read.table("N.txt") 테이블로 만듦
이제 tab을 이용하여 wordcloud 적용
7. 데이터프레임 형태 바꾸기
1) stack( ): 데이터를 밑으로 쌓음
> P1 <- stack(P.tab)
2) transpose( ): 전치
P1은 10*3 데이터프레임
> P1 <- t(P.tab)
> class(P1)
[1] "matrix"
행렬을 다시 데이터프레임으로 변경
> P2 <- as.data.frame(P1)
> colnames(P2) <- paste("rep", 1:10, sep = ".")
P2는 데이터프레임이 되었음
3) array permutation = aperm( )
다음 array인 UCBAdmissions는 다음과 같이 구성되어 있다.
위는 그냥 mosaicplot (다변량 분석 차트)를 이용하여 plot
하였으나 제대로 해석하기 힘듦
따라서 array permutation을 적용하여
Dept <-> Admit의 순서를 바꾼 뒤 다시 plot하여 해석함
4) reshape( )
통시적 자료를 공시적 자료로, 공시적 자료를 통시적 자료로 바꿀 수 있다.
idvar: 개체식별 변수
v.names: 매 시점에서 측정된 변수들의 이름
timevar: 시간변수
sep = "_"
direction: "wide"는 공시적, "long"은 통시적
varying: 시점별로 측정된 변수들의 이름(들)
8. reshape 패키지 - melt, cast 함수
9.
댓글
댓글 쓰기