'R program'에 해당되는 글 2건

  1. 2008/02/19 R (통계도구) - 데이터 입력하기 by Hare&Tortoise
  2. 2008/01/26 R (통계도구) (2) by Hare&Tortoise

사용자 삽입 이미지





먼저 데이터를 어떻게 R에다 입력하는지에 대해 간단히 올려보겠습니다.

1. c()를 이용하여 데이터 입력하기

>data1=c(1,2,3,5)

데이터를 위와 같이 입력하면 1,2,3,5라는 데이터가 data1이라는 변수에 저장됩니다. 결과 확인은 변수이름을 아래와 같이 치고 엔터를 해줍니다.

>data1
[1] 1 2 3 5

그리고 c()를 이용하여 데이터를 입력할 경우 간단한 계산들을 쉽게 할 수 있습니다. 예를 들면

>mean(data1)
[1] 2.75
>var(data1)
[1] 2.916667
>sum(data1)
[1] 11

이외에도 sort, min, max, range, cumsum 등의 함수도 이용할수 있습니다.
range는 min과 max를 보여주구요.
cum sum은 누적 합계를 보여줍니다.

c()를 이용하여 데이터를 입력할 경우 벡터의 형태로 데이터가 저장됩니다. 따라서, 우리가 데이터의 위치만 설정해주면 그 위치의 값만을 불러오는 것이 가능합니다. 예를 들면

>data1[2]
[1] 2
>data1[4]
[1] 5

또한 데이터내의 자료들의 위치를 검색할 수도 있습니다. 검색이라는 표현이 적절한지는 모르겠네요. ^^ 예를 들어 우리가 찾는 데이터가 3이라면

>which(data1==3)
[1] 3

여기서 which 함수가 이용되었구요. 위의 함수의 의미는 data1 데이터 중에서 3의 값은 어디에 어느것인지 묻고 있습니다. 답은 3이구요. 여기서 3은 Third의 의미로 dataset에서 3번째 데이터를 지목함을 의미합니다.

또 데이터의 전체 갯수가 얼마나 되는지 알고 싶을 경우는 length라는 함수를 사용합니다. 예는 아래와 같습니다.

>length(data1)
[1] 4

2. sequence 데이타 만들기
: 를 이용해서 간단히 만들수 있습니다. 예를 들어 다음과 같이 입력하면 자동으로 일련의 데이터를 생성해줍니다.

>1:5
[1] 1 2 3 4 5
>rev(1:5)
[1] 5 4 3 2 1

여기서 rev는 reverse의 약자이구요.

sequence 데이터를 만드는 다른 방법은 seq함수를 이용하는 방법이 있습니다 (sequence의 약자가 아닐까 생각합니다.). 예를 들면

>seq(1,5)
[1] 1 2 3 4 5

증가정도를 조절할수도 있습니다. by를 이용해서 2씩 증가하도록 해보겠습니다.

>seq(1,10,by=2)
[1] 1 3 5 7 9

같은 수를 반복하고 싶을때는 rep함수를 이용합니다 (repeat의 약어정도 되겠네요). 아래의 예는 1을 5번 반복하라는 이야기입니다.

>rep(1,5)
[1] 1 1 1 1 1

rep안에서도 : 을 사용할 수 있습니다.

>rep(1:3, 3)
[1] 1 2 3 1 2 3 1 2 3
이렇게 1:3이 3번 반복됩니다.

3. Matrix 형식 데이터 입력
R을 이용하면 매트릭스 형식의 데이터도 입력이 당연히 가능합니다. ^^

>data1<-matrix(c(1,2,3,4,5,6,7,8,9), nrow=3,ncol=3)
>data1
[1] 1 4 7
     2 5 8 
     3 6 9

우리가 평소알고 있던 형태랑 조금 다르게 출력되는 것을 알수 있습니다. 이럴때 t()함수를 이용하면 평소의 모습을 볼 수 있습니다.

>t(data1)
[1] 1 2 3
     4 5 6
     7 8 9

매트릭스 간의 곱은 '%*%'를 이용하여 계산하여 줍니다. 예를 들면 아래와 같구요.

>data1%*%data2

매트릭스의 특정값을 지정하고 싶을경우는 다음과 같이 해줍니다.

>data1[1,3]
[1] 7


그외에도 기본적인 연산자들을 제공하고 있는데요. 예를 들어서
>2+2
[1] 4

>2^3
[1] 8

>sqrt(4)
2

>log(10)
2.303

>pi
3.142

등의 간단한 계산도 위와 같이 쉽게 할 수 있습니다.

너무 오랜만에 업데이트를 하게 되네요. 여튼 틈나는데로 계속 업데이트 하도록 하겠습니다. ^^

크리에이티브 커먼즈 라이선스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

'거북이 > 꾸준히 공부하기' 카테고리의 다른 글

R (통계도구) - 데이터 입력하기  (0) 2008/02/19
R (통계도구)  (2) 2008/01/26
논문의 구성  (0) 2008/01/09
Posted by Hare&Tortoise

트랙백 주소 :: http://handt.tistory.com/trackback/24

댓글을 달아 주세요

말 오랜만에 글을 쓰게 되네요. 이번에는 제가 주로 사용하고 있는 분석도구인 R에 대해서 소개해보고자 합니다. 많은 분야에서 자료에 대한 통계처리 혹은 forecasting을 목적으로 simulation을 하기위해 다양한 분석도구를 사용하고 있으리라 생각됩니다. 프로그램을 짜는데 무리가 없으신 분들에게는 C, C++, Java와 같은 고급언어를 사용해서 이런 작업들을 할 수 있겠지만 거북이같이 프로그램 언어에 덜 친숙한 사람들은 어려운 것이 사실입니다. 그래서 나온 것들이 사용자들을 위해 미리 만들어진 함수들을 제공하는 범용 software들이 있겠는데요. 통계분석 프로그램에는 SPSS, SAS, Minitab 등이 있겠구요. Simulation을 위한 software에는 유명한 Matlab이 있겠네요. 물론 Matlab에서도 통계처리 함수를 제공하는 걸로 알고 있습니다. 제가 Matlab을 그렇게 많이 사용하지 않아서 R과 함께 비교하기는 어려울거 같구요. 여기서는 R의 특징을 이야기하고자 합니다.

사용자 삽입 이미지
기형태의 R은 통계분석을 위해 Ross Ihaka와 Robert Gentleman에 의해 개발되었습니다. R의 문법은 S programming language를 기반으로 만들어져서 다른 프로그램 언어처럼 프로그래밍이 가능한 특징도 지니고 있구요. 특히 제가 맘에 들어하는 부분은 R이 오픈소스라서 사용자들이 개발해나가는 프로그램이라는 겁니다 (이말은 공짜라는 이야기지요 ^^). 용량도 가벼워서 어느 컴퓨터에서나 다운받아서 사용할 수 있습니다. 공짜에다가 용량이 작다고 이 녀석을 무시할 수 있느냐... 그건 아닙니다. R은 앞에서도 이야기했듯이 많은 사용자들이 업데이트를 해나가는 프로그램입니다. 그래서 사용자들이 함수를 만들고 이것을 같이 공유하면서 확장성이 아주 뛰어납니다. 그래서 처음엔 통계분석을 위해 개발되었지만 지금은 많은 분야에서 사용이 가능한 프로그램이 되었구요. 현재는 Bayesian, Cluster, Econometrics, Finance, Psychometrics, SocialSciences 등에서도 사용가능한 함수를 개발하는 프로젝트팀이 있다고 하네요. 물론 위에서 언급한 분야 이외에서도 많이 활용되고 있구요.

R Homepage: http://lib.stat.cmu.edu/R/CRAN/index.html

음에 시작하기가 조금 힘이 들지만 SPSS와 SAS보다 유연하고 가벼우면서 훨씬 파워풀합니다. 또다른 특징은 그래프 기능이 탁월하다는 부분입니다. 지금은 활성화되지 않는것 같아보이지만 R 그래프 공유 사이트도 있더군요.

R Graph Gallery: http://addictedtor.free.fr/graphiques/

아래와 같은 그래프들의 소스코드가 올라와 있습니다.

사용자 삽입 이미지

R에 대한 소개는 요정도로 하구요. 앞으로 간략하게 제가 익힌 R의 기본명령어에 대해 정리하는 글을 올려볼까합니다.

크리에이티브 커먼즈 라이선스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

'거북이 > 꾸준히 공부하기' 카테고리의 다른 글

R (통계도구) - 데이터 입력하기  (0) 2008/02/19
R (통계도구)  (2) 2008/01/26
논문의 구성  (0) 2008/01/09
Posted by Hare&Tortoise

트랙백 주소 :: http://handt.tistory.com/trackback/17

댓글을 달아 주세요

  1. 이런게 있군요.
    저는 세상에는 SPSS 밖에 없는줄 알았어요.
    그러고 보니 책 놓은지가 얼만지 모르겠네요. ㅡㅡ;;