일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 의정부카페
- 씨유마카롱
- 양주카페
- 독서
- 이북리더기
- 어드밴트캘린더
- 티스토리챌린지
- 편의점
- 다이어트는내일부터
- 빅데이터청년인재
- 쫀득한마카롱
- 간헐적단식
- 키보드케이스
- 다니엘루틴
- 북클러버
- r
- 우리가빛의속도로갈수없다면
- 마켓컬리
- 예스24북클럽
- 원데이클래스
- 다이어트습관
- 예스24
- 편의점디저트
- 편의점마카롱
- 아이패드키보드
- 북클럽
- 오블완
- 영화
- 빅데이터
- 일상
- Today
- Total
저장소
R 정형 데이터 분석_02 본문
데이터 유형 ~ 도수분포표
#구구단 _ 사람마다 다양한 식이 나와서 신기 gugu=function(x){ for (i in 1:9){ cat(x,'x',i,'=',x*i,'\n') } } gugu(3) gu=function(){return(seq(3,27,by=3))} gu() g=function(x,y){return(x*y)} g(3, 1:9) u=function(x){ return(3*x) } u(1:9) #데이터 유형_실수(numeric), 정수(integer), 인자(factor), 논리값(logical), 문자열(character) x=8 class(x) y='dna' class(y) z=factor(c('t','f','tf')) class(z) w=as.logical(c('1','0','1','0')) class(w) w s=as.logical(c(1,0,1,1)) s class(s) ###데이터구조_유형과 헷갈리지 말 것!### #타입검색==class, 구조검색==str #vector : 하나의 열, 단위행렬 #matrix : 2차원 행렬, 벡터 합친 것 #array : 3차원 행렬 (같은 타입으로만 구성) #data frame : 3차원 행렬(다른 타입으로도 같은 구조 가능) #list : (name, value)쌍으로 갖는 것이 특징 ##vector x=c(1,2,3,4,5) x str(x) x[2] x[4]=0 x c(x,8) x=c(x,9) x ##matrix x=matrix(c(1,2,3,4),nrow=2,ncol=2) x y=matrix(c(1,2,3,4),nrow=2,ncol=2,byrow=T) #byrow행중심 y #rbind행중심으로 결합, cbind열중심으로 결합 r1=c(1,4,7) r2=c(2,5,8) r3=c(3,6,9) rbind(r1,r2,r3) c1=1:3 c2=4:6 c3=7:9 cbind(c1,c2,c3) ##array array(1:6) #1차원 배열 생성 array(1:6,c(2,3)) #2차원 배열 생성 array(1:6,c(2,2,2)) #3차원배열 생성 (2행, 2열, 2층) arr=c(1:24) arr dim(arr)=c(3,4,2) #dim arry차열 정리해주는 함수 arr dim(arr)=c(2,4,3) arr class(arr) #여러개 값이 들어가면 class에서 구조로 나옴. str(arr) #숫자로 이루어져있다고 나옴. 행열층까지. ##data.frame char1=c('a','a','b','b','c') num=c(1,1,2,2,3) test1=data.frame(char1,num) test1 test3=rbind(test1,c('c',4)) #행추가 test3 test2=cbind(test1,married=c(T,T,T,F,F)) #열추가 (married는 vector형태) test2 ##list test=list('kim',c(94,82,92),c(T,F,T)) test son<-list(son.name=c('minsu','minchul'),son.gender=c('M','M'),son.age=c(2,6)) son ###R데이터 파일 관리 getwd() txt<-read.table("studentlist.txt",header=T,stringsAsFactors = F) #header 컬럼명있을 경우 T txt #sep=" "콤마로 구분되있는 정보는 한 행으로 인식(read.table)sep으로 구분해줘야함. txt<-read.table("studentlist.txt",header=T,sep=",",stringsAsFactors = F) txt str(txt) g<-as.data.frame(read.csv("example_studentlist.csv")) t<-read.csv("example_studentlist.csv",header = T,sep = ",") t write.table(txt,file='tt.txt',row.names=F,col.names=T) #row.names=f 행번호x write.table(txt,file='ttt.txt',sep=",",row.names=F,col.names=T) write.csv(t,file='test.csv',row.names = F) ###기술통계 weight<-c(72,67,60,78,82) mean(weight) #sample표본 무작위 추출 함수 / replace복원추출(중복가능) myNum<-sample(1:100,size=100,replace=T) myNum mean(myNum) #무작위로 결측값 넣기 위해 작업 myNum[sample(x=1:100,size=20,replace=F)]<-NA myNum mean(myNum) ##NA결측치(빈값) / NULL모른다(평균 등 통계량 계산시 제외) #na.rm=T na 제외 mean(myNum,na.rm=T) ##가중평균(weighted.mean) sales<- c(95,72,87,65) weight<-c(0.5,0.25,0.125,0.125) mean(sales) weighted.mean(sales,weight) A_score<-c(4.0,3.0) b_score<-c(3.0,4.0) count<-c(3,2) weight<-count/sum(count) weighted.mean(A_score,weight) weighted.mean(b_count,weight) #가중치를 넣는 작업(퍼센트화), 위에 문제는 이미 가중치(%) 포함 수치 score<-c(90,80,70,60) student<-c(3,12,15,5) weight<-student/sum(student) weighted.mean(score,weight) ##중앙값 ti<-c(7,2,3,7,6,9,10,8,9,9,10) median(ti) mean(ti) summary(ti) ta<-c(7,2,3,7,6,9,10,8,9,10) median(ta) mean(ta) summary(ta) ##freq최빈값 / which.max(freq)최빈값위치 num.v<-c(1,2,2,3,4,3,5,5,7,9,2,2,0) #table은 도수분표만들어줌 freq<-table(num.v) freq which.max(freq) #2,3 2가 최빈값이며, 3번째에 위치한다라는 의미. names(freq)[3] char.v<-c('o','it','the','it','it','가','가','가','가','가') freq2<-table(char.v) which.max(freq2) #가,4 최빈값 가, 4번째 위치함. names(freq2)[4] ##table 빈도조사하여 표로 만듦. 분류할때 자주 사용 x<-c('a','b','c','c','d','d') table(x) ##최대 최소값의 색인(위치) which. x<-c(1,2,3,NA,4) which.max(x) which.min(x) ##최대 최소 (na.rm안하면 NA로 나옴.) min(x,na.rm=T) max(x,na.rm=T) ###자료의 분산 ##범위 : 최대-최소소 we<-c(72,67,60,78,82) max(we)-min(we) ##분산 ww<-c(72,67,60,78,82) var(ww) ##표준편차 sd(ww) ###데이터의 위치 ##구간별데이트 파악 ##사분위수 r<-c(136,182,166,132,130,186,140,155) quantile(r) quantile(r,0.25) quantile(r,0.3) #30% 위치의 수 quantile(r,c(0.25,0.3)) summary(r) iris summary(iris) boxplot(r) #2사분위수는 중앙값 #최대, 3사분위,2사분위(=중앙),1사분위,최소 #숙제 #1)이론적으로 평균과 표준편차 dice1<-c(1,2,3,4,5,6) mean(dice1) sd(dice1) #2)주사위 10번 던졌을 때 dice<-sample(1:6,size=10,replace=T) mean(dice) sd(dice) #3)1000000번던졌을 때 dice2<-sample(1:6,size=1000000,replace=T) mean(dice2) sd(dice2) #4)1,2,3값 비교하여 값 차이가 나는 이유 설명 ##도수분포표 t<-c(88,67,76,80,86,94,78,84,82,75,80,75,65,84,78,82,71,60,87,75) 20^(1/3) u<-c(6.5,4.0,7.1,8.3,5.4,7.6,9.0,15.7,16.7,6.4,5.0,8.5,5.7,7.7,7.2,12.4,7.1,5.5,9.7,4.4,7.0,6.3,8.3,6.9, 5.7,7.6,7.9,7.9,6.0,8.2,10.4,9.9,3.9,9.8,8.2,5.6,7.9,6.4,7.4,7.0,13.0,8.7,6.4,6.7,7.4) length(u) x.num<-length(u) d<-x.num^(1/3) round(d) duu<-(max(u)-min(u))/4 round(duu) min(u) max(u) u.cut<-cut(u,breaks=seq(3.0,18.0,by=3.0),right=F) #cut 쪼갠다, breaks 나누겠다 3에서18까지 3간격으로, right=F e뒤에숫자미만으로. table(u.cut) u.cut
|
'교육 > 빅데이터 청년인재_경희대 R' 카테고리의 다른 글
R 정형 데이터 분석_전처리01 (0) | 2019.07.11 |
---|---|
R 정형 데이터 분석_03 (0) | 2019.07.11 |
R 정형 데이터 분석_03 (1) | 2019.07.10 |
R 정형 데이터 분석_01 (0) | 2019.07.08 |
빅데이터 청년인재_경희대 R과정 (0) | 2019.07.04 |