학위논문통계 2024. 7. 5. 07:53

 

1. Rinterpreter입니다.

 

아직 interpreter를 잘 모르는 분들이 있을 것 같은데요. 옛날부터 아니 지금까지 프로그램을 한다고 하면 프로그램 소스코드를 짠 다음 컴파일(compile)라는 것을 해야 합니다. 그래서 컴퓨터 안에서 돌아갈 수 있는 기계어 비슷한 것으로 바뀝니다.

 

C, C++, 포트란, 맥의 Objective C 전부 다 compile 언어입니다. 다만 Java만 좀 다릅니다. 혼종이죠.

 

Rinterpreter이고 compile 할 필요가 전혀 없습니다. 프로그램이 필요한 중요한 모듈은 이미 거의 다 만들어져 있고, 작업하는 사람은 이미 만들어진 모듈의 이름을 알아서 불러오기만 하면 됩니다.

 

최근에 인기가 많은 파이썬도 아마 interpreter 가능성이 높습니다.

 

그래서 자신이 필요한 프로그램을 짜는데 시간이 별로 걸리지가 않습니다. 이마 만들어져 있는 모듈들을 불러오기만 하면 되니까요. 따라서 배우기도 쉽고 활용하기도 쉽습니다. 필요한 작업이 생각날 때 마다 불러와 간단하게 작업하면 됩니다. CC+ 같은 거창한 compiler를 불러올 필요가 없으니까요.

 

그렇지만 나중의 작업은 굉장히 비효율적입니다. 느리고 컴퓨터 자원을 많이 소비합니다.

 

 

2. R은 벡터 컴퓨팅입니다.

 

R은 원소 하나 하나 마다 일일이 계산을 하지 않습니다. 벡터 통체로 계산을 합니다.

 

예를 들어 보면

 

a<-1:3, b<-3:5,

d<-a+b 하면 d에는 4, 6, 8이라는 값이 들어가 있습니다.

 

일일이 do loop 해서 계산할 필요가 없습니다. 만약 C 같은 컴파일러로 프로그램을 짜면 다음의 3개를 해야 합니다.

 

d[1]<-a[1]+b[1];

d[2]<-a[2]+b[2];

d[3]<-a[3]+b[3];

 

이렇게 3번 작업을 do-loop 해서 d를 구해 냅니다. R에서는 그냥 d<-a+b 하면 끝납니다. R이 얼마나 쉬운 프로그램인지 아시겠지요.

 

 

3. R의 자료 유형

 

기본이 벡터입니다. 대부분의 자료는 프로그램 도중에 자연스럽게 만들어집니다. 위의 d<-a+b에서 d가 만들어지듯이요.

 

그러나 ab는 여러분 스스로 만들어 내어야 합니다.

 

a<-1:10000하면 크기가 10000인 벡터 자료가 만들어집니다.

 

다음으로 중요한 자료형이 matrix입니다.

 

matrix(1:15, 3, 5);

 

하면 3*5크기의 행렬이 만들어지고 행렬 안의 값은 1:15까지의 숫자입니다.

 

가티 관련된 명령어는 is.matrixas.matrix가 있습니다.

 

a<-1:5a<-matrix(1:5, 5,1)은 프로그램 안에서 구별하기 힘듭니다. 그래서 가끔 체크할 필요가 있습니다.

 

a<-1:5 벡터를 5*1형태의 matrix로 바꿔야 할 때가 있습니다. 이 경우 as.matrix를 쓰면 됩니다.

 

matrix의 크기는 dimension으로 표시합니다. vector 자료의 크기는 length로 표기합니다. 그냥 dim(m)라고 하면 됩니다. 여기서 m은 행렬자료입니다.

 

행렬은 linear algebra라고 해서 수학뿐만 아니라 모든 응용학문에서 가장 중요한 분야입니다. 아마 자유자재로 쓰려면 학부1, 대학원 1년 최소 2년은 공부하셔야 할 겁니다. 통계 분석에 나오는 고유값 역시 행렬 이론에서 나온 것입니다.

 

2차원의 행렬이 있고, 2차원 이상의 행렬 모양은 array라고 합니다. 그 다음 다양한 자료 유형을 모은 list라고 있습니다. list안에 벡터, 행렬, array를 같이 모아 두고 필요할 때 하나씩 꺼집어 내서 사용할 수 있습니다.

 

 

4. 자료의 내용

 

간단하게 컴퓨터에서 들어가는 내용물은 숫자와 문자 2개라고 합시다. 좀 더 세밀하게 더 들어갈 수는 있지만 골치만 아픕니다.

 

모든 R의 자료형은 숫자든 문자 등 하나의 내용물 형식만 들어가야 합니다.

 

a<-c(3, male, 7) 이렇게는 안됩니다. a<-c(3, 'male', 7) 이런 식으로 강요를 하면 37도 문자로 바뀌어 결과물이 나옵니다.

 

> a<-c(3, 'male', 7)

> a

[1] "3" "male" "7"

 

그러나 우리가 통계처리해야 할 데이터는 숫자와 문자가 혼재되어 있습니다.

 

그래서 새롭게 나온 자료 유형이 data.frame입니다. 보면 차원이 2차원인 matrix 모양이지만 안의 내용은 숫자와 문자가 혼용되는 것이 가능합니다.

 

이렇게 기본적인 지식을 가지고 R프로그램 하다 보면 자식도 모르게 실력이 늘수 있습니다.