프로그래밍 Programming
03. Exploring the corpus - 전처리 및 간단한 변환
2014. 11. 21.1. Exploring the Corpusinspect() 를 이용하여 문서의 데이터가 제대로 로딩되었는지 확인이 가능하다. > inspect(docs[2]) [[1]]NULL2. Preparing the Corpus텍스트 분석을 위해서 경우에 따라서는 전처리 과정이 필요할 수 있다. 아래에서 보듯이 대상 텍스트를 소문자로 변환시키고, 숫자를 제거하는 등의 기능을 갖고 있음을 확인할 수 있다. > getTransformations()## [1] "removeNumbers" "removePunctuation" "removeWords"## [4] "stemDocument" "stripWhitespace"변환을 위해서는 tm_map() 을 사용한다. 아래에서 살펴본다. 3. Simple Transforms 아..
02. Loading a Corpus (txt, pdf, word)
2014. 11. 18.1. Corpus 로딩분석의 대상이 되는 문서의 포맷은 다양하지만, 우리가 앞으로 사용하게 될 tm 패키지는 꽤 많은 포맷을 지원한다. text, PDF, Microsoft Word, XML.의 포맷을 포함한다. 2. Corpus Sources and Readers1) sources> getSources()[1] "DataframeSource" "DirSource" "URISource" "VectorSource" "XMLSource" 2) readers - 텍스트 분석 결과는 다음의 포맷 등으로 표현가능하다> getReaders()[1] "readDOC" "readPDF" "readPlain" "readRCV1" [5] "readRCV1asPlain" "readReut21578XML" "readReut2..
01. 텍스트마이닝(Text Mining)을 위한 패키지 준비
2014. 11. 14.본격적인 텍스트 마이닝에 앞서 아래 패키지들이 설치되어 있는지 먼저 확인한다. 설치되어 있지 않으면 install.packages("tm") 과 같은 식으로 설치한 후 아래와 같이 실행한다. > library("tm") > library("SnowballC") > library("RColorBrewer") > library("ggplot2") > library("Rgraphviz")> install.packages("Rgraphviz")Installing package into ‘C:/Users/fukaeri/Documents/R/win-library/3.1’(as ‘lib’ is unspecified)Warning in install.packages : package ‘Rgraphviz’ is not ..
Plot geoms(geometric objects) (1) - 추세선 그리기 (span, gam, lm, rlm)
2014. 11. 9.Geom(geometric object)은 데이터를 보여주는데 사용되는 객체의 유형으로, gplot 은 산포도에 다양한 형태의 geom 을 표현할 수 있다.이 외에도 "histogram", "freqpoly", "density", "bar" 등 다양한 객체가 존재한다. geom 설명 "point" 산포도에 사용. qplot() 사용시 기본값 "smooth" 데이터의 추세선을 나타내고, 표준오차의 정도를 나타내는 데 사용 "boxplot" 상자그림, 상자수염도, 분포를 요약해서 나타내는 데 사용 "path", "line" 데이터 포인트 사이에 선으로 연결. line 은 왼쪽에서 오른쪽으로 그려지는 반면, path 는 어느 방향으로든지 가능하다. 1. 추세선 그리기 무수한 데이터 포인트로 이루어진 산포도로는..
ggplot2 패키지 설치 및 기본사용법
2014. 11. 9.※ 본 예제에 사용하는 diamonds dataset 는 ggplot2 패키지에 포함되어 있다. ※ ggplot2 패키지의 설치는 다음과 같이 한다. > install.package('ggplot2') 위 데이터는 정제되지 않은 데이터이므로 아래와 같이 랜덤으로 100개의 샘플을 뽑아낸 dsmall 이라는 dataset 를 이용해서 얘기를 전개해나가고자 한다. > library("ggplot2", lib.loc="~/R/win-library/3.1") > set.set(1410) Error: could not find function "set.set" dsmall qplot(carat, price, data = diamonds) 2. qplot() 은 아래와 같이 변수의 함수를 인수로 가질 수 있음 > ..
데이터 읽기, 데이터 프레임, 세분화, 요약 (Data Handling)
2014. 11. 1.1. 텍스트 포맷으로 저장하기1) 엑셀의 데이터를 R 로 가져오기 위해 text 포맷으로 저장한다. 2) 엑셀 프로그램에서 파일 > 다른이름으로저장 > 파일 형식에서 '텍스트 (탭으로 분리)' 선택 2. R 에서 데이터 읽기1) read.table 을 이용해서 R 로 읽어들일 수 있다. > degrees = read.table(file.choose(), sep = "\t", header = TRUE) // sep = "\t" 는 탭으로 구분된다는 의미이고, header = TRUE 는 첫번째 행에 변수 이름을 포함한다는 의미이다. 파일을 선택하는 팝업이 뜨면 읽고자 하는 파일을 선택하면 된다. 3. 데이터 프레임1) 이렇게 읽어들인 값은 data frame 라는 형태로 저장된다. 2) 데이터 프레임은 변..
Information Visualization (15) - R 그래픽 기초 (직선그래프 영역채우기)
2014. 10. 29.> y // y x=1920:1970> plot.new() > plot.window(xlim=c(1920,1970), xaxs="i",ylim=c(46.5,55.5), yaxs="i") > abline(v=seq(1930,1960,by=10), col="gray") //배경 그리드 그리기> abline(h=seq(48,54, by=2), col="gray")> xx=c(1920,x,1970) > yy=c(46.5,y,46.5)> polygon(xx,yy,col="gray") // 다각형 그리기> axis(1)> axis(2, las=1)> box()>
Information Visualization (14) - R 그래픽 기초 (그래프 그리기 Line Graphs, Curves)
2014. 10. 29.1. 직선 그리기 > plot.new()> plot.window(xlim = c(1, 4), ylim = c(0, 3)) > x = c(1, 2, 3, 4)> y = c(0, 2, 1, 3)> lines(x, y)> axis(1)> axis(2)> box()2. 곡선 그리기 특정 구간 사이에 y = f (x) 형태의 그래프를 그리는 경우가 많은데,하나의 방법은 해당 구간을 잘게 잘라 직선의 모음으로 보는 것이다. 예를 들면, 다음과 같이 정규분포곡선을 그릴 수 있다. > x = seq(-3, 3, length = 1000) // 해당 구간을 1,000개로 쪼갠다> y = dnorm(x) > plot.new()> plot.window(xlim = range(x), ylim = range(y))> lines..
Information Visualization (13) - R 그래픽 기초 (축 axis)
2014. 10. 29.1. 축과 주석 axis(1, at=1:4, lab=c("A", "B", "C", "D"))예제의 경우 x축 1, 2, 3, 4 에 tick mark 가 위치하고 각각에 "A", "B", "C", "D" 라고 라벨을 붙인다는 의미- las=. 라벨의 로테이션 결정 (기본값은 0 이며 값에 따라 다음과 같다) las=0 : 항상 축과 평행(parallel) las=1 : 항상 수평(horizontal) las=2 : 항상 축에 대해 수직(perpendicular) las=3 : 항상 수직(vertical) 2. 축의 최대, 최소값 설정 plot.window(xlim=c(0,1), ylim=c(10,20), xaxs="i")- xlim, ylim : x 축, y 축 각각의 최소값과 최대값을 지정하는 것으로 ..
Information Visualization (12) - R 그래픽 기초 (텍스트, 범례)
2014. 10. 25.1. 텍스트 넣기 text(x, y, labels)- x, y : 텍스트가 위치하는 좌표- labels : 삽입되는 문장- col : 텍스트 색깔- srt : 문장의 방향 (수평으로부터 반시계방향으로 각도)- adj : 위치조정 > plot.new()> plot.window(xlim = c(0, 5), ylim = c(0, 10))> axis(1)> axis(2)> box()> text(1,2,"text",srt=0)> text(2,3,"text",srt=90)> text(3,4,"text",srt=180)> text(4,5,"text",srt=270)> text(3,5,"text",srt=180, adj=1) 2. 범례 legend(xloc, yloc,legend = c("Exact", "Approxi..
Information Visualization (11) - R 그래픽 기초 (도형 그리기)
2014. 10. 25.1. 화살표 그리기 arrows(x0, y0, x1, y1, code=int, length=num, angle=num)- x0, y0, x1, y1 는 시작점과 끝점을 의미- code 1 : 화살표가 그려지는 지점이 시작점 2 : 끝점에 그려짐 3 : 선의 양쪽에 화살표 그려짐- length – 화살표의 길이 (단위는 인치)- angle - 화살표의 각도 > plot.new()> plot.window(xlim = c(0, 5), ylim = c(0, 10))> axis(1)> axis(2)> arrows(1, 2, 4, 6, code=2, length=1, angle=45)> 2. 사각형 그리기 rect(x0, y0, x1, y1, col=str, border=str)- x0, y0, x1, y1 은 아..
Information Visualization (10) - R 그래픽 기초 (선 그리기 Adding Disconnected Lines Segments To A Plot)
2014. 10. 24.기본형태 segments(x0, y0, x1, y1) * x0, y0 - 시작점의 좌표 x1, y1 - 끝나는 점의 좌표* 라인모양, 색상, 폭 등 설정 가능 > plot.new()> plot.window(xlim = c(0, 10), ylim = c(0, 10))> axis(1)> axis(2)> segments(1,1,5,7)>
Information Visualization (9) - R 그래픽 기초 (선 그리기Drawing Straight Lines Across A Plot)
2014. 10. 24.기본형태 abline(a=intercept, b=slope) // a = y 절편, b= 기울기abline(h=numbers) // 수직선 긋기abline(v=numbers) // 수평선 긋기* 라인 형태, 색상, 폭 등의 인수는 기존 line() 함수와 마찬가지로 적용가능함 > plot.new()> plot.window(xlim = c(0, 10), ylim = c(0, 10))> axis(1)> axis(2)> abline(2,1)> abline(v=2)> abline(h=6)> box()>
Information Visualization (8) - R 그래픽 기초 (선 그리기Adding Connected Line Segments)
2014. 10. 24.기본형태 lines(x, y, lty=str, lwd=num, col=str) 1. lty=int or name선의 스타일 (기본값 "solid")"blank", "solid", "dashed", "dotted", "dotdash", "longdash", "twodash" 등이 있으며 아래 샘플 참조. > plot.new()> plot.window(xlim = c(0, 10), ylim = c(0, 10))> axis(1)> axis(2)> lines(c(0,10),c(1,1),lty="solid")> lines(c(0,10),c(2,2),lty="dashed")> lines(c(0,10),c(3,3),lty="dotted")> lines(c(0,10),c(4,4),lty="dotdash")> lines..
Information Visualization (8) - R 그래픽 기초 (점 추가하기 Adding Points To A Plot)
2014. 10. 18.형식은 다음과 같음points(x, y, pch=int, col=str) pch점의 모양 결정하는 것으로, 1~25 사이의 값은 그래픽 심볼, 33~126 사이의 값은 아스키코드(ASCII code)에서 가져옴특히 21~25 사이의 값에는 경계선의 색(col=)과 배경색(bg=) 옵션 있음 이미지출처 http://www.statmethods.net/advgraphs/parameters.html 아스키코드 이미지출처 http://www.asciichars.com/ col "red", "lightblue" 등과 같이 경계선 색상 설정
Information Visualization (7) - R 그래픽 기초 (그래프 그리기 Producing The Graph)
2014. 10. 18.기본적인 그래프 생성 코드는 다음과 같다. plot.new() // 새로운 좌표 생성plot.window(xlim = c(0, 1), ylim = c(5, 10)) // x, y 좌표 범위 설정abline(a = 6, b = 3) // 절편이 6이고 기울기가 3인 직선그리기axis(1) // x축 그리기axis(2) // y축 그리기title(main = "The Overall Title") // 타이틀 입력title(xlab = "An x-axis label") title(ylab = "A y-axis label") box() // 박스 그리기 다음과 같이 표현된다.
Information Visualization (6) - R 그래픽 기초 (산포도 Scatter Plot)
2014. 10. 17.이번에 알아볼 것은 산포도(Scatter Plot) 그리는 방법입니다. 먼저 아래 내용을 정해야 합니다. 각각의 단계에 코드를 대응시켜보면 다음과 같습니다. 1) x, y 축 결정> xlim = range(x)> ylim = range(y) 2) 좌표창 로딩> plot.new()> plot.window(xlim = xlim, ylim = ylim) 3) 점 배치> points(x, y) 아래와 같이 산포도 함수를 하나 만듭니다. > scat = function(x, y) {xlim = range(x) // range returns a vector containing the minimum and maximum of all the given arguments.ylim = range(y)plot.new()p..
Information Visualization (5) - R 그래픽 기초 (사각형을 이용한 나선형 그리기 Spiral Squares)
2014. 10. 17.Spiral Squares 이번에는 사각형을 이용한 나선 그리기입니다. > plot.new()> plot.window(xlim = c(-1, 1), ylim = c(-1, 1), asp = 1)> square = seq(0, 2 * pi, length = 5)[1:4] // 0에서 2π 사이를 5등분한 후 그 중 0에서부터 4개의 값만 취합니다> n = 51 // 사각형 갯수> r = rep(1.12, n) // 1.12를 n 만큼 반복> r = cumprod(r) // cumprod() function returns the cumulative multiplication results.> r = r/r[n]> theta = seq(0, 2*pi, length = n)> for (i in n:1) {x =..
Information Visualization (4) - R 그래픽 기초 (나선형 그리기)
2014. 10. 16.나선형 그리기 Drawing a Spiral 나선이란 반경이 점차 증가하는 원의 형태라고 보면 된다. 각점의 x, y 좌표는 다음과 같이 정의된다.여기서 R 은 반경을 뜻한다. 아래 명령은 (0,0) 에서 시작하여 30번 회전하는 나선을 만든다. 1 라디안은 원둘레 위에서 반지름의 길이와 같은 길이를 갖는 호에 대응하는 중심각의 크기로 다음과 같다.1 rad = 180°/π, 따라서 2π = 360° theta = seq(0, 30*2*pi, by = 2*pi/72) 위식에서 보듯이 각을 나타내는 theta 값은 0 에서 시작해서 2*pi/72 (360°/72 = 5°) 간격으로 30*2*pi (30*360°, 30번 회전할 때까지)가 될때까지 증가한다. R = theta/max(theta)위 식에서 보..
오라클 트리거 trigger 현황 보기
2014. 9. 18.SELECT tri.trigger_name triggername, tri.status status, obj.status validation, tri.table_name tablename, tri.table_owner ownerFROM SYS.ALL_OBJECTS obj, SYS.ALL_TRIGGERS triWHERE tri.owner = ' ' AND obj.object_type = 'TRIGGER' AND obj.object_name = tri.trigger_name AND obj.owner = tri.ownertri.owner 에 오너 이름 넣고 조회하면 됨.
Information Visualization (3) - R 그래픽 기초 (원 그리기)
2014. 9. 12.1. 원 그리기 원을 그리는 간단한 R 함수는 없다. 아래는 다각형을 가지고 대략적으로 원을 그리는 방법이다. > plot.new() > plot.window(xlim=c(-1.1,1.1), ylim=c(-1.1,1.1), asp=1) > theta=seq(0,2*pi, length=72) // 180° = π, 2π 즉, 360° 를 72 로 나눈 것이므로 Change of angle = 5° > x=cos(theta) > y=sin(theta) > lines(x,y) > 위의 그림에서 c = 1 이라고 하면, 좌표 X = (a,b) = (a/1, b/1) = (cosA, sinA) 가 된다. theta = seq(0,2*pi, length=72) 의 간격대로 해당 값들을 구해보면 아래와 같다. 아래와..
Information Visualization (2) - R 그래픽 기초 (사각형 그리기 예제, 대각선 가진 사각형, 중첩된 사각형)
2014. 9. 6.사각형 그리기 몇 가지 예제 1. 대각선을 가로지르는 선을 가진 사각형 그리기 > plot.new() ## 새 도면 열기> plot.window(xlim = c(0, 1), ylim = c(0, 1), asp = 1)> rect(xleft = .1, ybottom = .1, xright = .9, ytop = .9) ## rect(xleft, ybottom, xright, ytop) 각 포지션의 벡터값 가진 사각형 그리기> segments(0, 0, 1, 1) ## segments(x0, y0, x1, y1) : 출발점(x0, y0)에서 도착점(x1, y1)으로 선긋기> segments(0, 1, 1, 0) 2. 중첩된 사각형 그리기 > plot.new()> plot.window(xlim=c(0,1..
Information Visualization (1) - R 그래픽 기초 (여백조정, 기본함수목록)
2014. 9. 6.1. 새 도면 준비 그래프를 그릴 새로운 도면을 준비한다.> plot.new() 2. 여백(margin) 조정하기 1) par() 함수는 현재 그래픽 장치의 그래픽 파라메터의 리스트를 수정하는데 쓰인다. 2) 마진을 설정하는 함수의 형식은 다음과 같다. par(mar=c(bottom margin, left, top, right))par(mai=c(bottom margin, left, top, right)) 여기서 par("mar") 은 텍스트의 라인수, par("mai") 는 인치를 나타낸다.그리고 순서는 bottom - left - top - right 이다. 라인수로 마진 크기 조정par(mar = c(5.1, 4.1, 4.1, 2.1))인치단위로 마진 크기 조정 par(mai = c(1.02,..
R 프로그래밍 - 참고자료 Further Resources
2014. 9. 6.CRAN Home Pagehttp://cran.r-project.org/R 업데이트, 패키지 정보 수록, 최근 R 이벤트 알림R Journalhttp://journal.r-project.org/R 과 새로운 R 패키지에 대한 저널R Manualshttp://cran.r-project.org/ > Documentation > Manuals관련 매뉴얼 리스팅, An Introduction to R 부터 볼 것. 전체를 다 볼 필요는 없고 관련있는 섹션 위주로 보면 됨R Forumhttp://www.nabble.com/R-f13819.htmlR 포럼
R 프로그래밍 - R 편집기 R Editors (WinEDT, Tinn-R)
2014. 9. 6.1. 내장형RGui 는 스크립트 윈도우라는 내장된 편집기를 가지고 있다. Syntax highlighting 기능이 없는 등 제한적인 기능을 가지고 있다. Syntax highlighting 은 기능에 따라 코드의 색깔이 달라지는 것을 말한다(예를 들면 주석은 녹색으로 반복문은 빨간색과 같은 식으로 말이다). 게다가 최근의 편집기는 혼란을 줄여주고자 명령문을 자동으로 닫는 기능을 가지고 있다. 따라서 아래에서 언급하는 툴 중 하나를 다운로드 받아 사용하기를 권한다. 2. 기타 R 편집기각광받는 R 편집기로는 WinEDT 가 있습니다. WinEDT 는 상용프로그램입니다.WinEDT 다운로드 http://www.winedt.com 추천할만한 또다른 편집기에는 Tinn-R 이 있습니다. Tinn-R 은 무료프..
R 프로그래밍 - 좋은 R 코드를 작성하기 위한 팁 Tips for Writing Good R Code
2014. 9. 6.1. General1) 코드에 코멘트 달기 - "#" 을 이용하여 아래와 같이 코멘트를 달 수 있다. > load("~/myfirstRobjects.rdata", ex ls.str(ex) # 코멘트 달기 savevector1 : int [1:9] 1 2 3 4 5 6 7 8 9 savevector2 : chr "Yay!" > "#"의 왼편에 위치한 코드만 실행된다.코멘트가 중요한 이유는 여러분이 잊어버리지 않기 위해서도 중요하지만 여러분의 코드를 쓰는 다른 이들을 위해서도 중요하다는 점은 두말할 나위가 없다. 2) 하드 코드를 쓰지 말 것예를 들어, 설사 길이가 변하지 않는다고 하더라도 벡터의 길이와 같은 하드 코드를 쓰지말고 length() 와 같은 함수를 이용해라.아래 예제에서 2번 코드가 더 훌륭한..
오라클 잡 스케줄링 dbms_job.submit
2014. 9. 5.dbms_job.submit 을 통해 일정 간격이나 특정 시간대에 프로시져를 실행할 수 있다. 1. 현재 돌아가고 있는 잡을 확인합니다. SELECT * FROM DBA_JOBS; 2. 다음과 같이 Job 을 등록할 수 있습니다. 1) 코드 예시 DECLARE X NUMBER; BEGIN SYS.DBMS_JOB.SUBMIT ( X Job 넘버 (식별자) ,'SMIS.proc_daily_stat_ins;' 주기적으로 실행할 프로시져 또는 패키지이름 ,to_date('05-09-2014 13:08:00','dd/mm/yyyy hh24:mi:ss') 다음 번 Job 수행시간 ,'SYSDATE + 30/1440' Job 수행 주기 ,TRUE ); SYS.DBMS_OUTPUT.PUT_LINE('Job Number..
리눅스Linux 시간 수동 설정 (date, hwclock)
2014. 9. 5.1. 시간 확인 하드웨어상 시간과 소프트웨어(Operating System)상의 시간으로 구분할 수 있다. OS 시간은 하드웨어 시간에 종속됨(OS가 재부팅할 때마다 하드웨어상의 시간을 가져옴) 1) 하드웨어 시간 확인 [root@server ~]# hwclock -r Fri Sep 5 11:04:22 2014 -0.038974 seconds 2) 소프트웨어 시간 확인 [root@server ~]# date Fri Sep 5 10:51:58 KST 2014 보다시피 상당히 차이가 난다. 2. 시간 변경 1) 먼저 국가별 현재 시간 확인 http://phone.chol.com/intro/nation_time.htm 2) 시간 수동으로 변경 [root@server ~]# date -s "2014-09-05..
R 프로그래밍 - Functions (Custom)
2014. 8. 30.이번에는 R 에 내장된 함수가 아닌 사용자가 사용을 위해 만든 커스토마이징된 함수를 활용하는 방법에 대한 것이다. 커스토마이징된 함수를 이용하기 위해서는 콘솔과 스크립트창을 모두 사용할 수 있지만, 스크립트창을 이용하는게 좀 더 편리하다. 스크립트창은 File > New script 를 이용해서 띄운다. 아래의 예제를 해당 창에 넣어보자. doubledip doubledip(5,-2) [1] 1.778279 > 주의해야할 점은 plot() 이나 c() 처럼 내장된 함수의 이름으로 저장해서는 안된다는 것이다. 내장된 함수의 이름과 동일한지를 확인하기 위해서는 간단히 콘솔창에서 이름을 쳐보면 된다. 또 하나 주의해야할 점은 커스톰 함수를 사용한 후 워크스페이스를 저장하지 않는다면 해당 함수를 사용하기 위해 ..
R 프로그래밍 - Functions (Built in)
2014. 8. 29.내장함수 1. 도움말 보기 1) 해당 함수를 타이핑하면 R 콘솔상에서 해당 함수가 입력값을 어떻게 처리하는지를 간단하게 보여준다. > plot 2) 내장된 도움말 기능을 이용하기 위해서는 해당 함수 앞에 ? 를 붙여 타이핑하면 된다. > ?plotplot() 함수를 어떻게 사용해야하는지에 대한 상세한 설명이 포함된 도움말 파일이 로딩된다. 2. 유용한 함수들함수명기능예제결과값abs()절대값 표시abs(-1)[1] 1sqrt()양의 제곱근 표시sqrt(c(2,4))[1] 1.414214 2.000000source()해당 파일의 스크립트 실행source("nameofmyscript.r")콘솔상에서 스크립트 명령 실행됨seq()수열생성 seq(시작값,끝값, 반복주기)seq(0, 8 ,2)[1] 0 2 4 6 ..