Patrick's 데이터 세상

R 언어와 문법 - 기초 함수 본문

Programming/R

R 언어와 문법 - 기초 함수

patrick610 2020. 6. 24. 22:09
반응형
SMALL

R의 기초 함수

 

① 수열 생성하기

   rep : 기본적으로 두 개의 인수를 갖는데, 첫 번째 인수를 두 번째 인수만큼 반복하는 숫자 벡터를 생성.

   ex)

rep(1, 3)
#Result
[1]  1   1   1

 

   seq :기본적으로 두 개의 인수를 갖는데, 첫 인수부터 두 번째 인수까지 1씩 증가하는 수열의 숫자 벡터를 생성.

   ex)

seq(1, 3)
#Result
[1]  1   2   3

  ※ by=n 옵션을 추가하여 1씩 증가하는 수열이 아닌 n씩 증가하는 수열을 생성할 수 있다.

   ex)

seq(1, 11, by=2)
#Result
[1]  1   3   5   7   9   11

  ※ length=m 옵션을 추가하면 전체 수열의 개수가 m개가 되도록 자동적으로 증가하는 수열을 생성.

   ex)

seq(1, 11, length=6)
#Result
[1]  1   3   5   7   9   11
seq(1, 11, length=8)
[1]  1.0000   2.428571    3.857143   ...   11.000000

  ※ rep 함수에 연속 증가하는 seq 함수의 형태를 인수로 사용하여 다음과 같은 수열을 생성할 수 있다.
      이 경우 수열2:5, 즉 2, 3, 4, 5가 3번 반복된다는 것을 알 수 있다.

   ex)

rep(2:5, 3)
#Result
[1]  2   3   4   5   2   3   4   5   2   3   4   5

 

 

② 기초적인 수치 계산

   ex)

a=1:10

# 벡터 내부 각 숫자끼리 연산
a+a
a-a
a*a
a/a

 

   R에서 벡터를 생성할 때는 기본적으로 열벡터가 만들어진다.
   3행 1열의 열벡터 행렬을 생성하고, 이 행렬의 전치행렬 t(a), 즉 1행 3열의 행벡터 행렬을 생성한 후 두 행렬에 대해 서로 행렬곱을 실시하면 3행 3열의 행렬이 만들어진다.

   ex)

a=c(2,7,3)
a
#Result
[1]  2   7   3

t(a)
#Result
     [,1] [,2] [,3]
[1,]   2    7    3

A=a%*%t(a) # %*% 행렬곱
A
#Result
      [,1] [,2] [,3]
[1,]    4   14    6
[2,]   14   49   21
[3,]    6   21    9


   행렬 A에 대해서 *를 통해 연산을 실시하면 단순한 스칼라 곱의 결과를 얻을 수 있다. 또한 solve 명령어를 통해 주어진 행렬의 
   역행렬(inverse matrix)을 계산할 수 있다.

   ex)

mx=matrix(c(23,41,12,35,67,1,24,7,53), nrow=3)
mx
#Result
     [,1] [,2] [,3]
[1,]  23   35   24
[2,]  41   62    7
[3,]  12    1   53

5*mx
#Result
     [,1] [,2] [,3]
[1,] 115  175  120
[2,] 205  335   35
[3,]  60    5  265

solve(mx)
            [,1]       [,2]       [,3]
[1,] -0.35743822 0.18466969 0.13746848
[2,]         ...        ...        ...
[3,]         ...        ...-0.01069087

 

   mean, var, sd

   ex)

a
#Result
[1]  1   2   3   4   5   6   7   8   9   10

mean(a)
#Result
[1]  5.5

var(a)
#Result
[1]  9.166667

sd(a)
#Result
[1]  3.02765

 

 sum, median, log

   ex)

sum(a)
#Result
[1] 55

median(a)
#Result
[1] 5.5

log(a)
#Result
[1] 0.0000000 0.6931472 1.0986123 ...  1.9459101
[8] 2.0794415 2.1972246 2.3025851

 

cov(공분산), cor(상관계수)

   ex) 

b=log(a)
cov(a,b)
#Result
[1] 2.112062

cor(a,b)
[1] 0.9516624

 

summary(사분위수, 최소값, 최대값, 중앙값, 평균 계산)

   ex) 

summary(a)
#Result
Min.		1st Qu.		Median		Mean		3rd Qu.		Max.
1.00		3.25		5.50		5.50		7.75		10.00

 

 

반응형
LIST
Comments