본문 바로가기

빅데이터과정/R

#50_140825_R_이상치, 중앙값, 상한, 하한 # 이상치, 중앙값, 상한, 하한 l 평균값을 알아야하는 이유 ?- 헬스 클럽에 오는 사람들이 자신과 비슷한 연령의 사람들과 같은 교실에 있을때 가장 행복해 한다는 사실을 알게 되어서 각 교실에 가장 전형적인 나이대가 어디쯤인지 파악하려면 각 교실별로 나이의 평균값을 알아야한다.- 통계학에서는 이것을 mean 이라고 한다.- average 라고 안하고 mean 이라고 하는 이유는 평균값을 구하는데 여러가지 방법이 있기 때문이다 >> 현재 반의 나이의 평균값을 구한다고 했을때 지금은 사람의 수가 몇 명인지 알고있지만 새로운 누군가 나오면 다시 계산을 해야하는 번거로움이 생긴다.- 이런 번거로움을 해결하기 위해서 아래처럼 숫자를 문자로 표현한다sum = X1 + X2 + X3 + X4 + X5 + ... +.. 더보기
#50_140825_R_PIE CAHRT # PIE CHART l Pie Chart 는 왜 필요한가 ?데이터를 각자 구별되는 그룹이나 범주에 포함시켜 각 조각의 크기가 다른그룹에 비해서 상대적으로 얼마나 큰지 나타낼 때, 즉 비율을 보여 줄 때 사용 예 :> (x pie(y$Units.sold,labels=paste(y$Genre,y$Units.sold,sep=":"),col=rainbow(7),main="비교 분석2") >> y 그래프틑 각 장르별 판매된 게임의 비율을 비교할 때 파이 차트는 적절하지 않기 떄문에 bar plot이 필요하다- bar plot은 범주들의 값이 비슷한 값을 가질 때 정밀한 비교를 하기 위해 유용 > barplot(x$Units.sold,names.arg=x$Genre,col=rainbow(7),main="비교 분석.. 더보기
#50_140825_R_TWITTER 분석 # TWITTER 분석 n 환경구성1. 아래 URL 접속http://apps.twitter.com/app/new- 아래의 3가지 항목을 입력하고 동의한 후 create 클릭 2. api key 확인- 아래의 API key와 API secret 를 잘 저장해둔다 3. 아래의 명령어 순서대로 수행> install.packages("twitteR")> install.packages("plyr") > install.packages("stringr")> install.packages("ggplot2") > library(twitteR)> library(ROAuth)> library(plyr)> library(stringr)> library(ggplot2) > download.file(url="http://curl.. 더보기
#50_140825_R_움직이는 GRAPH # 움직이는 GRAPH n 움직이는 차트 생성 > install.packages("googleVis")> library(googleVis) > t1 line_clt t2 plot(t2) http://127.0.0.1:16880/custom/googleVis/MotionChartID12903eb6507e.html > line2_clt t3 plot(t3) http://127.0.0.1:16880/custom/googleVis/MotionChartID129075a51eea.html 더보기
#50_140825_R_AUDIO GRAPH # AUDIO GRAPH n audio 데이터 그래프 출력(심작박동 소리 비교) > install.packages("tuneR")> library(tuneR)> audio str(audio)Formal class 'Wave' [package "tuneR"] with 6 slots ..@ left : int [1:2646250] 0 0 0 0 0 0 0 0 0 0 ... ..@ right : int [1:2646250] 0 0 0 0 0 0 0 0 0 0 ... ..@ stereo : logi TRUE ..@ samp.rate: int 44100 ..@ bit : int 16 ..@ pcm : logi TRUE> head(audio@left,100) [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0.. 더보기
#49_140822_R_LINE CHART # LINE CHART l Line Chart > cars plot(cars,type="o",col="blue",main="test") > trucks lines(trucks,type="o",pch=20,lty=2,col="red") > plot(sal,comm) > a a a[1] 8 8 8 8 0 0 0 8 7 8 8 8 7 8 8 8 8 8 7 7 7 8 8 8 8 8 8 8 8 8 8 0 8 8 8 8 8 8 0 8> plot(a,type="o",col="blue",ann=F) > a a [1] 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8> lines(a,type="o",lty=2,col="red").. 더보기
#49_140822_R_BAR PLOT # BAR PLOT l bar plot(막대그래프)> barplot(emp$sal) >> 아래의 그림을 R로 구현 tapply(사고선박수,list(substr(발생시기,6,7),관할해경서),sum)a barplot(emp$sal, main="Salary Bar Cahrd") > barplot(emp$sal, main="Salary Bar Chart", xlab="Name", ylab="Salary",names.arg=emp$ename) > barplot(emp$sal, main="Salary Bar Chart", xlab="Name", ylab="Salary",names.arg=emp$ename,col=rainbow(15)) >> 직업, 직업별 토탈월급에 대한 막대 그래프를 그리시오 > x barplot.. 더보기
#48_140821_R_SUBQUERY # SUBQUERY >> JONES의 월급보다 더 많은 월급을 받는 사원들의 이름과 월급을 출력 > emp[emp$sal>jonessal, c("ename","sal")] ename sal8 SCOTT 30009 KING 500013 FORD 300015 JACK 3200 >> 가장 최근에 입사한 사원의 이름과 입사일 출력 > emp[as.Date(emp$hiredate) == maxhire, c("ename","hiredate")] ename hiredate11 ADAMS 1987-05-23 >> KING에게 보고하는 사원들의 이름을 출력 > king emp[emp$mgr==king,"ename"][1] JONES BLAKE CLARK >> 관리자인 사원들의 이름을 출력 > emp[emp$empno %.. 더보기
#48_140821_R_COUNT # COUNT l count를 위한 환경설정 1. 홈페이지 접속http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2. windows x64 다운 3. library 설치install.packages("KoNLP")install.packages("wordcloud")install.packages("plyr")library(KoNLP)library(wordcloud)library(plyr) 4. R 프로그램 다시 시작 n 예제 활용 > emp count(emp$job) x freq1 ANALYST 22 CLERK 53 MANAGER 34 PRESIDENT 15 SALESMAN 4 useSejongDic()- .. 더보기
#48_140821_R_JOIN # JOIN l 오라클 조인문법 사용 l R에서 조인문법 구현- merge 함수 사용 n R에서 조인 사용 >> 이름과 월급, 부서위치와 부서번호를 출력 > merge(emp[ ,c("ename","sal","deptno")], dept[ ,c("deptno","loc") ],by="deptno" ) deptno ename sal loc1 10 KING 5000 NEW YORK2 10 MILLER 1300 NEW YORK3 10 CLARK 2450 NEW YORK4 20 SMITH 800 DALLAS5 20 JONES 2975 DALLAS6 20 FORD 3000 DALLAS7 20 ADAMS 1100 DALLAS……………………………….- 양쪽에 by에 쓴 deptno가 양쪽에 있어야한다 >> DALLA.. 더보기
#48_140821_R_GROUP 함수 # GROUP 함수 l 그룹함수 l 그룹함수 종류- max, min, sum, mean, length, range n 활용 예제 > car > 전국에서 교통사고가 가장 많이 발생하는 지역은 어디인가? > car[car$cnt==max(car$cnt),c("year","city","loc","cnt")] year city loc cnt256 2009 서울 강북구 박내과옆 먹자골목 66 >> 직업, 직업별 최대월급을 출력하시오 > aggregate(sal~job, emp, max) job sal1 ANALYST 30002 CLERK 32003 MANAGER 29754 PRESIDENT 50005 SALESMAN 1600 >> 부서번호, 부서번호별 토탈월금 출력 > aggregate(sal~deptno, em.. 더보기
#47_140819_R_함수 # 함수 l 함수의 종류 1. 문자- toupper, tolower, substr, length 2. 숫자- power 3. 날짜- difftime, Sys.Date() 4. 변환- as.numric(), as.character(), as.vector(), as.matrix(), as.data.frame(), as.factor(), as.logical(), as.Date() 5. 일반- ifelse 6. 원리- emp[행 , 열 ] : emp data frame에서 특정행과 열을 조회- data.frame( ) : data.frame(vector, vector, vector) l as.difftime- units = (days,mins,hours,weeks)- l ls()- 어떤 변수가 존재하는지 출력 .. 더보기
#47_140819_R_정렬 # 정렬 l data frame에서 data를 정렬하는 키워드- order l data정렬을 지원하는 패키지> install.packages("doBy")> library(doBy) l 변환함수1. as.numric()2. as.character()3. as.vector()4. as.matrix()5. as.data.frame()6. as.factor()7. as.logical()8. as.Date() n 활용 예제 >> 이름과 월급을 출력하는데 월급이 높은 사원부터 출력 > emp[order(sal,decreasing=T), c("ename","sal")] ename sal9 KING 500015 JACK 32008 SCOTT 300013 FORD 30004 JONES 29756 BLAKE 28507 .. 더보기
#47_140819_R_연산자 # 연산자 l 연산자의 종류 3가지 1. 산술 연산자- + , - , * , / : 덧셈, 뺼샘, 곱셈, 나눗셈- %% : 나눈 나머지값- %/% : 나누기(나머지값을 버림)> 5/2[1] 2.5> 5%%2[1] 1> 5%/%2[1] 2 2. 비교 연산자- > , = , = 1000 & emp$sal install.packages("data.table")- > library(data.table) l SQL 쿼리를 쓰기 위한 package 설치 > install.packages("sqldf") installing the dependencies ‘gsubfn’, ‘proto’, ‘RSQLite’, ‘RSQLite.extfuns’, ‘DBI’, ‘chron’ URL 'http://cran.nexr.c.. 더보기
#47_140819_R_R의 기본 # R의 기본 l R 이란?- 뉴질랜드 University of Auckland 대학의 Robert Gentleman 과 Ross Ihaka이며 1995년 개발함. R 은 데이터 분석을 위한 통계 및 그래픽스를 지원하는 자유 소프트웨어 환경이다. 그 뿌리는 벨 연구소에서 만들어진 통계 분석 언어 S에 근간을 두고있다.- http://cran.nexr.com/ 작업디렉토리 변경 > data 압출파일을 압축 푼 폴더 > emp empempno ename job mgr hiredate sal comm deptno1 7369 SMITH CLERK 7902 1980-12-17 800 NA 202 7499 ALLEN SALESMAN 7698 1981-02-20 1600 300 303 7521 WARD SALESMA.. 더보기