프로그래밍 Programming
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 ..
R 프로그래밍 - Types of Output / Exporting Data
2014. 8. 29.1. Types of Output Types of InputTypes of Output delineated files(.csv) delineated files R object (.rdata) R object (.rdata) graphical output (.pdf, .jpg, .png, .bmp, .tiff) 2. How to export data write.csv() : .csv 형태로 저장하기 위한 함수(사용되는 파라메터는 read.csv() 와 동일함) 예를 들어보면, > printvector1 = 1:10 > write.csv(printvector1, file="myfirstoutput.csv") // 데이터, 파일네임순 > getwd()[1] "C:/Users/fukaeri/Documents" ..
R 프로그래밍 - Plotting Data : Additions
2014. 8. 16.이번에는 기존 그래프에 선과 점을 추가하는 방법을 알아봅니다. 먼저 예제로 사용할 그래프를 하나 만든다 > plotvector3 = 1:9 > plotvector4 = c(1, 3, 6, 2, 7, 5, 5, 3, 1) > plot(plotvector3, plotvector4) 1. 선 그리기 점사이를 이을 때는 lines() 함수를 이용한다. > lines(plotvector3, plotvector4) 수직선이나 수평선을 긋고 싶을 때는 abline() 함수를 이용한다. > abline(coef = c(1, 1), v = 3, h = 5) coef : (절편, 기울기) 특정 v : x축 좌표와 교차하는 수직선 h : y축 좌표와 교차하는 수평선 2. 점 넣기 아래와 같이 point() 함수..
R 프로그래밍 - Plotting Data : Box Plots
2014. 8. 16.Box Plots은 이상치(outlier)를 비롯하여 4분위를 이용해 값들의 분포 양상을 보여준다. 생성은 boxplot() 명령어로 한다. > par(cex = .6) > boxplot(proteinconc) cex : 좌표내 텍스트의 크기 값 설정하는 옵션 전체를 4등분하여 박스 아랫값은 25% 지점을, 가운데 진한 검정라인은 50% 지점을, 그리고 박스 상단은 75% 지점을 나타낸다. 그리고 IQR(Interquartile Range) = Upper Quartile - Lower Quartile 를 나타낸다. Whiskers는 Lower Quartile - 이상치를 제외한 최소값 또는 이상치를 제외한 최대값 - Upper Quartile 를 나타낸다. Outliers(이상치, 극단치) 는 그림에서 ..
R 프로그래밍 - Plotting Data : Histograms
2014. 8. 14.R에서 히스토그램을 만들때는 hist() 명령어를 이용한다. > hist(proteinconc[,1], main = colnames(proteinconc)[1], xlab ="Concentration") plot() 명령어에서 쓸 수 있는 파라메터의 대부분은 hist() 에서도 활용가능하다. 위에서 보듯이 "main", colnames(), "xlab" 과 같이 말이다. 하지만 hist() 자체가 가지고 있는 특별한 파라메터들도 있다. 다음을 보자. > par(mfrow=c(1,2), cex=.75) > hist(proteinconc[,1], breaks = 50) > hist(proteinconc[,1], breaks = c(0, .5, .7, .8, .9, 1)) 파라메터 "breaks"를 두 가..
R 프로그래밍 - Plotting Data (좌표로 나타내기) : Dot plot(점도표)
2014. 8. 9.Dot plot(점도표)은 plot() 함수를 통해서 호출되는데, 같은 길이의 두 개의 벡터를 처리하고 좌표로 나타낸다. 첫 번째 벡터는 x축에, 두 번재 벡터는 y축에 대응된다. > plotvector1 = 1:9 > plot(plotvector1, plotvector1) 위의 명령을 실행하면 새로운 창이 뜨면서 도표가 표시되는데 이 창은 plotting window 이고 좌표가 표시되는 창이다. 만약 아래와 같이 새로운 명령을 실행하면 이전의 도표는 없어지고 새로운 도표로 대체된다. > plotvector2 = 9:1 > plot(plotvector1,plotvector2) 새로운 도표창을 여는 명령어는 다음과 같다. 아래 명령어를 실행하면 기존 창 옆에 R Graphics: Device 3 (ACT..
R 프로그래밍 - Reading in Data
2014. 8. 9.그럼 예제 파일을 가지고 시작해보자. R 프로그램의 working directory 는 다음의 명령어로 확인가능하다. > getwd() [1] "C:/Users/fukaeri/Documents" 작업 디렉토리 변경은 다음과 같이 한다. setwd() 명령어로는 새폴더를 생성할 수는 없다. 그러므로 해당 폴더가 없는 경우라면 먼저 폴더를 생성한 후 작업 디렉토리로 지정해야 한다. > setwd(C:/Users/myusername/Documents/My Other R Stuff) 본 예제에 필요한 파일을 아래 링크에서 다운로드한 후 다음과 같이 입력한다. http://sites.google.com/site/undergraduateguidetor/manual-files > proteinconc = read.c..
R 프로그래밍 - Data Types (Converting/Using)
2014. 8. 2.아래와 같은 방법으로 데이터 타입을 변경할 수 있다. > matrix4=as.matrix(c(1,2,3))> matrix4 [,1][1,] 1[2,] 2[3,] 3> class(matrix4)[1] "matrix"> vector7=as.numeric(matrix4)> vector7[1] 1 2 3> class(vector7)[1] "numeric"> 변환이 필요한 이유는 특정 함수는 특정 데이터 타입을 필요로 하기 때문이다.
R 프로그래밍 - Data Types (logical, vector, matrix, array, data.frame, list)
2014. 8. 2.1. logical True/False 값(Boolean values)을 포함하는 logical 클래스에 대해 알아보자. > logical1 = c(T,F,F)> logical1[1] TRUE FALSE FALSE> class(logical1)[1] "logical" 2. vector 데이터 타입으로서의 vector 는 수학의 벡터와는 다르게 정의된다. vector 타입은 일견 기존의 numeric, character, logical 과 중복된 것처럼 보일 수 있지만, vector 타입의 장점은 numeric, character, logical 모두를 포함할 수 있다는 것이다. > vector1 = vector(mode="logical",3)> vector1[1] FALSE FALSE FALSE 특정..
R 프로그래밍 - Data Types (numeric, integer, character)
2014. 8. 2.1. numeric 수를 입력하는 경우 기본적으로 numeric 으로 저장된다. > calc1 = 1 + 1> calc1[1] 2 변수의 데이터 타입을 알고자하는 경우 아래 class() 함수를 이용한다.> class(calc1)[1] "numeric" > numbers1 = c(1, 2, 3)> numbers1[1] 1 2 3> class(numbers1)[1] "numeric" 위의 예를 보면 하나의 수가 아니므로 벡터가 아닌가라는 생각이 들 것이다. 여기서 트릭은 c() 함수는 값들을 연결해주는 concatenate 함수이라는 점에 있다. 각각의 값이 numeric 이므로 그 값들을 결합한 1 2 3 역시 numeric 이다. 2. integer > numbers2 = 1:3> numbers2[1..
R 프로그래밍 - Manipulation
2014. 7. 16.1. 콤마의 의미 > matrix1 [,1] [,2] [,3] [1,] 1 4 7 [2,] 2 5 8 [3,] 3 6 9 > 1) [] 속 콤마의 의미 [1,] 숫자 뒤에 오는 콤마는 행 전체를 의미함 [,1] 숫자 앞에 오는 콤마는 열 전체를 의미함 이는 행렬의 요소를 정의할 때 행 넘버를 적고 열 넘버를 적는다는 일반적인 관습에 근거한다. > matrix1[1, 3] [1] 7 > matrix1[ 2, ] [1] 2 5 8 그리고 그 결과는 벡터의 형식으로 나타나게 됨 2) 열을 변경하는 명령어(제거되는 것은 아님) 두 번째 열을 변경하기 위해서는 다음의 명령어를 사용하면 된다. > matrix1[,-2] [ ,1 ] [ ,2 ] [ 1, ] 1 7 [ 2, ] 2 8 [ 3, ] 3 9 2. 데이터..
R 프로그래밍 - Matrices(행렬)
2014. 7. 11.1) 왼쪽에서 오른쪽으로, 그리고 위에서 아래로 인덱싱된다. 2) (nrow) 는 행의 갯수를 특정하고, (ncol) 은 열의 갯수를 특정한다. 3) 입력된 값의 수(예제에서는 9개)보다 많은 원소(예제에서는 10개)를 가지는 행렬을 만들려고 하면, 아래와 같은 경고 메시지를 출력한다. data length [9] is not a sub-multiple or multiple of the number of rows [2] 모자라는 1칸에는 첫번째 값이 1이 삽입된다. 행렬이 채워질 때까지 반복적으로 값이 들어가게 된다. 앞에서도 보았듯이 결과값 앞에 [1] 이 출력되는 것을 보아왔다. [1] 은 행렬의 한 열 또는 한 행과 동등이다. 위 그림의 첫번째 예는 1+1 에 대한 답인 2 라는 한 개의 원소를 가..
R 프로그래밍 - 벡터(Vector)
2014. 7. 11.1) 벡터는 아래 화면에서 보듯이 연속된 수일 수도 있고, 임의의 수일 수도 있다. 2) 포함할 수 있는 수의 갯수에는 제한이 없다. ":" (콜론 연산자)는 아럐 예에서 보듯이 1:9 즉, 1에서부터 1씩 증가하여 9(또는 9 직전의 수)가 될 때까지라는 의미다. >vector1=1:9 >vector1 [1] 1 2 3 4 5 6 7 8 9 3) 그리고 벡터를 만드는 다른 방법에는 c() 함수를 이용하는 방법이 있다. c() 안에 원하는 수를 넣으면 된다. 4) 벡터의 덧셈 연산은 사이즈가 같은 경우 각각의 위치에 있는 값끼리 더하면 된다. 5) 사이즈가 다른 경우 큰 사이즈가 작은 사이즈의 배수인 경우 반복하여 더한다. 사이즈가 배수가 아닌 경우 다음과 같은 에러 메시지를 출력한다. longer ob..
R 프로그램의 역사, 다운로드 및 설치, 대수(algebra)
2014. 7. 11.1. R의 역사 R 프로그램은 뉴질랜드 오클랜드 대학의 Ross Ihaka 와 Robert Gentleman 에 의해 개발되었습니다. R 에 대한 좀 더 알고 싶으시면 아래 링크를 참조하세요. http://www.r-project.org/ http://en.wikipedia.org/wiki/R_(programming_language) 2. 다운로드 및 설치 가까운 미러 사이트(http://cran.r-project.org/mirrors.html) 다운로드 한 후 설치하시면 됩니다. 3. 대수(Algebra) 1) 산술 연산자 적용이 가능하다. + (addition, 더하기) - (subtraction, 빼기) / (division, 나누기) * (multiplication, 곱하기) ^ (raise to..
/*+ bypass_ujvc */ 를 이용한 오라클 다중행 업데이트 쿼리
2014. 3. 22.2개 이상의 테이블을 조인하여 table1의 특정 컬럼을 table2 의 특정 컬럼의 값으로 업데이트는 아래와 같은 형식을 취한다. [일반적인 업데이트의 경우] UPDATE table SET A = 'F' WHERE B = 'T' [다중행 업데이트의 경우] UPDATE /*+ bypass_ujvc */ ( 조인된 select 쿼리가 위치하는 곳 ) SET A = A' 아래 예제는 table2 의 id 별로 end_date 컬럼의 max 값을 찾아 비어져있는 table1 의 end_dt 컬럼에 업데이트하는 경우이다. [예제] UPDATE /*+ bypass_ujvc */ (SELECT a.end_dt end1, REPLACE(b.end_date, '-', '') end2 FROM table1 a, ( ..
Earned Value Management (EVM, C/SCSC)
2012. 12. 1.Earned Value Management(Alias: EVM, cost/schedule control systems criteria - C/SCSC) WBS/EVMによるITプロジェクトマネジメント외국도서저자 : 山戶 昭三출판 : ソフトリサ-チセンタ- 2009.04.01상세보기 Earned Value Management (EVM) is a project performance measurement technique that provides an accurate comparison of the actual work performed against that planned. It achieves this by placing a baseline value on each deliverable at project co..
이클립스 단축키 보기 Shows you a list of your currently defined shortcut key
2012. 11. 3.Shiny product branding by thepatrick 이클립스 애플리케이션 개발서 세트국내도서>컴퓨터/인터넷저자 : Stephen Holder,Stanford Ng,Laurent Mihalkovic,제프 맥아퍼(Jeff McAffer),장미셸 르뮤(Jean-Michel Lemieux)출판 : 에이콘출판사 2012.02.08상세보기 이클립스 단축키 힌트 보기 CTRL + SHIFT + LShows you a list of your currently defined shortcut key Effective Eclipse: Shortcut keys by Tomas Kramarhttp://eclipse.dzone.com/news/effective-eclipse-shortcut-key 이클립스 애플리케..
카산드라 설치 Installing Cassandra
2012. 11. 1.The Apache Cassandra Projecthttp://cassandra.apache.org/ 빅 데이터 시대를 위한 NoSQL 핵심 가이드국내도서>컴퓨터/인터넷저자 : Tatsuya Sasaki / 손은영역출판 : 로드북(Roadbook) 2011.12.30상세보기 카산드라는 Java 를 기반으로 만들어진 소프트웨어이므로 우선 JDK 를 사용할 수 있어야 한다. 아래 링크에서 JDK 를 다운로드받는다. JDK 6 update 37 버전http://www.oracle.com/technetwork/java/javase/downloads/jdk6u37-downloads-1859587.html 이 중 각자 플랫폼에 맞는 파일을 받는다. Java SE Development Kit 6 Update 37Yo..
key-value형 스토어란 What is a Key/Value store database?
2012. 10. 27.빅 데이터 시대를 위한 NoSQL 핵심 가이드국내도서>컴퓨터/인터넷저자 : Tatsuya Sasaki / 손은영역출판 : 로드북(Roadbook) 2011.12.30상세보기 key-value형 스토어에 대한 간단한 설명Key 와 Value 를 쌍으로 관리하고 Key 를 통해 결과값을 얻어내는 방식 간단한 예제를 보자. user1923_age 18 user3371_color Blue user4344_color Brackish user1923_height 6' 0" user3371_age 34왼쪽이 key 이고 오른쪽이 value 이다. 보시다시피 그 값은 문자열이 될 수도 있고 정수 등의 형태도 될 수가 있다. 유일한 key 를 가지고 있기 때문에 그 유일한 key 만 조회하면 해당 객체를 가진 노드에서 ..
Tokyo Tyrant - 2. Tokyo Tyrant 설치하기
2012. 10. 27.3am, Dubai Airport by joiseyshowaa 빅 데이터 시대를 위한 NoSQL 핵심 가이드국내도서>컴퓨터/인터넷저자 : Tatsuya Sasaki / 손은영역출판 : 로드북(Roadbook) 2011.12.30상세보기 이어서 Tokyo Tyrant 를 설치한다. 버전은 1.1.41 이다. [**@**]# wget http://fallabs.com/tokyotyrant/tokyotyrant-1.1.41.tar.gz [**@**]# tar zxvf tokyotyrant-1.1.41.tar.gz [**@**]# cd tokyotyrant-1.1.41 [**@**]# ./configure [**@**]# make Error 발생make: *** [ttutil.o] 오류 [**@**]# sudo..
Tokyo Tyrant - 1. Tokyo Cabinet 설치하기
2012. 10. 27.Disruptive Code Is Off The Ground. Just Sayin' #dcode by paulamarttila 빅 데이터 시대를 위한 NoSQL 핵심 가이드국내도서>컴퓨터/인터넷저자 : Tatsuya Sasaki / 손은영역출판 : 로드북(Roadbook) 2011.12.30상세보기 Tokyo Tyrant (영속성 key-value형 스토어) 히라바야시 미키오(http://alpha.mixi.co.jp/author/mikio/)가 개발한 오픈소스 소프트웨어로NoSQL 데이터베이스 중에서는 영속성 key-value형 스토어로 분류된다. 공식사이트 http://fallabs.com/tokyotyrantTokyo Tyrant: network interface of Tokyo Cabinet To..