R-code 2

From Biocourse

Jump to: navigation, search
 
Arithmetic Operators : 간단한 4칙 연산

> 7*3                                   ## 7 * 3 = 21
> 7+2*3                               ## 7 + (2 * 3) 와 같다. 즉 2*3을 수행후 7을 더한다. 42
> (7+2)*3                             ## ( )를 먼저 계산한 후 3을 곱한다. 27
> 12/2+4                              ## 나누기를 먼저 한 후 4를 더한다. 10
> 12/(2+4)                            ## ( ) 를 먼저 한후 12를 나눈다. 2
> 3^2                                   ## 3*3과 같은 뜻 3의 제곱. 9
> 3**2                                 ## 3*3과 같은 뜻 3의 제곱. 9
> 2*3^2                               ## ^(승)을 먼저한 후 2를 곱한다. 18
 
+ (더하기), - (빼기), * (곱하기), / (나누기), ^,** (제곱)
( ) 괄호가 있으면 연산시 먼저 수행한다.

 Assignments
 
> x=2                                   ## x에 2를 할당한다.
> x                                       ## x에 저장된 값을 출력한다. 2
> x <-3                                 ## x에 3을 할당한다.
> x                                       ## x에 저장된 값을 출력한다. 3
> rm(x)                                ## x라는 object를 삭제한다.
> x                                       ## x에 저장된 값을 출력한다.(여기선 x라는 변수를 삭제하였기 때문에 결과가 안나올것이다.)

어떤 변수에 값을 할당할 때는 =,<- 를 이용한다.
저장된 변수를 삭제할때는 rm을 사용한다. 


 Concatenate Command ( c ) 
 
> x=c(1.5, 2, 2.5)                                             ## x라는 변수에 여러개의 값을 할당할때는 c( )를 이용한다.
> x                                                                   ## x를 출력한다. ( 1.5, 2, 2.5 )
> x^2                                                               ## x를 제곱하여 출력한다. (여기선 x가 여러개이므로 각각의 원소들을 제곱한 
                                                                        ## 결과를 출력한다.)
> x=c(x, 3)                                                       ## 기존에 할당된 x와 3을 묶어서 x라는 변수에 저장한다.
> x                                                                   ## x를 출력한다. ( 1.5, 2, 2.5, 3 )
> y=c(This, is, an, example)           ## y라는 변수에 여러개의 문자를 할당할 때는 c( )를 이용한다. 
> z=c(x,x)                                                    ## z라는 변수에 여러개의 값이 저장된 x와 "x"라는 문자를 저장한다.
> z                                                                   ## z를 출력한다. ( "1.5","2", "2.5", "3" ,"x" )
 
여러개의 숫자 열이나, 문자열을 저장할때는 c( ) 를 이용한다.
기존에 저장된 변수를 불러서 새로운 값과 새로운 변수에 저장이 가능하다.
문자와 숫자를 혼합할 경우엔 문자가 우선시 되어 출력이 된다.(사용시 유의해야된다.)


Sequence Command ( seq )
 

> seq(1, 10, 1)                                                    ## 1부터 10까지 1개씩 증가하여 출력하라. (1,2,3,4,5,6,7,8,9,10)
> seq(123, 132, 1)                                              ## 123에서 132까지 1개씩 증가하여 출력하라.
                                                                           ## (123, 124, 125, 126, 127, 128, 129, 130, 131, 132)
> seq(0, 1, 0.1)                                                   ## 0부터 1까지 0.1씩 증가하여 출력하라. 
                                                                           ## (0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0)
> seq(1, 10)                                                        ## 1부터 10까지 1개씩 증가하여 출력하라. (1,2,3,4,5,6,7,8,9,10)
> seq(123, 132)                                                  ## 123에서 132까지 1개씩 증가하여 출력하라.
                                                                           ## (123, 124, 125, 126, 127, 128, 129, 130, 131, 132)
> a=seq(10)                                                        ## 1부터 10까지 1개씩 증가하여 a변수에 저장하라. 
> a                                                                      ## a 변수를 출력하라. (1,2,3,4,5,6,7,8,9,10)
> b= 1:10                                                            ## 1부터 10까지 1개씩 증가하여 b변수에 저장하라.
> b                                                                      ## b 변수를 출력하라. (1,2,3,4,5,6,7,8,9,10)
 
> 0:10/10                                                            ## 0부터 10까지 1개씩 증가하고 결과를 10으로 나눠서 출력하라.
                                                                           ## (0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0)
> seq(5, 1, -1)                                                     ## 5부터 1까지 -1개씩 감소하여 출력하라. (5, 4, 3, 2, 1)
> 5:1                                                                   ## 5부터 1까지 -1개씩 감소하여 출력하라. (5, 4, 3, 2, 1)
 
seq는 반복적으로 어떤 값씩 증가되거나 감소되는 값을 이용하기 위해서 사용된다.
seq(시작, 끝, 정도) 이며, 시작, 정도는 스킵할 수 있다. 이 경우 시작은 1, 정도도 1이 기본값이다.
: 는 seq(시작,끝,1)과 같은 뜻이다.


Replicate Command ( rep ) 

>  rep(1, 5)                                                           ## 1을 반복해서 5개를 생성하여 출력한다. (1,1,1,1,1)
>  rep(c(0, 6), 3)                                                  ##  0과 6을 3번 반복해서 출력한다. (0,6,0,6,0,6
>  rep(c(0, “x”), 3)                                              ##  0과"x"를 3번 반복해서 출력한다.("0","x","0","x","0","x")
>  rep(1:3,4)                                                        ##  1,2,3을 4번 반복해서 출력한다.(1,2,3,1,2,3,1,2,3,1,2,3)
>  rep(1:3, 1:3)                                                    ##  1,2,3을 1,2,3번 반복해서 출력한다.(1,2,2,3,3,3)
>  rep(1:3, rep(4, 3))                                           ##  1,2,3을 4번씩 반복하여 출렬한다.(1,1,1,1,2,2,2,2,3,3,3,3)
>  rep(c(1, 3, 2), length=10)                               ##  1,3,2를 반복을 수행하는데 길이가 10까지 하여 출력한다.
                                                                            ##  (1,3,2,1,3,2,1,3,2,1)
                                                     
rep : 반복적인 수나 문자를 생성할때 사용한다.
rep (반복을 원하는 것, 반복할 횟수, length = 길이)로 구성된다.


Arithmetic Operators


>  a= 5*(0:3)                                                          ## a에 (0,1,2,3)곱하기 5인 값을 할당한다.
>  b= 1:4                                                                ##  b에는 (1,2,3,4)를 할당한다.
>  a+b                                                                    ## 두 변수를 합한다. ( 1,7,13,19)
>  a-b                                                                     ## a 변수에서 b 변수를 뺀다. ( -1,  3,  7, 11)
>  a*b                                                                    ## a 변수 곱하기 b 변수를 출력한다. ( 0, 10, 30, 60 )
>  a/b                                                                     ## a 변수를 b변수로 나눈다. ( 0.000000, 2.500000, 3.333333, 3.750000)
>  a**b                                                                  ## a 변수를 b변수의 승을 한다. (0,    25,  1000, 50625)
>

간단한 사칙연산의 예이다.
a,b변수는 4차원의 벡터로 구성된 변수로 벡터의 길이가 동일하므로 4칙연산을 쉽게 할수있다.
변수의 길이가 다른 경우엔 연산은 수행되지만 경고가 발생하고, 정확한 답을 얻을수 없으므로 사용자는 유의해야된다. 


Use of Brackets


 
>  x= seq(0, 20, 10)                                                      ## 0,10,20을 만든다.
>  x                                                                               ## x를 출력한다. ( 0, 10, 20 )
>  x[1]                                                                          ## x의 첫번째 원소를 출력한다. ( 0 )
>  x[2]                                                                          ## x의 두번째 원소를 출력한다. ( 10 )
>  x[3]                                                                          ## x의 세번째 원소를 출력한다. ( 20 )
>  x[4]                                                                          
                                                     ## x의 네번째 원소를 출력한다. (여기서는 존재하지 않으므로 NA 출력한다. )
>  x[1:2]                                                                       ## x의 첫번째 두번째 원소를 출력한다. ( 0, 10
>  x[c(1, 3)]                                                                  ## x의 첫번째 세번째 원소를 출력한다. ( 0, 20
>  x[-1]                                                                         ## x의 첫번째를 뺀 나머지 원소를 출력한다. ( 10, 20
>  x[-c(1:2)]                                                                  ## x의 첫번째, 두번째를 뺀 나머지를 출력한다. ( 20 )
>  y=1:2                                                                       ##  y에 1과 2를 저장한다.
>  x[-y]                                                                         ##  x에서 y값의 위치를 뺀 나머지를 출력한다. ( 20 )
 

여러개의 값을 가진 변수에서 특정 위치의 원소를 출력하여 저장하거나, 특정 위치를 제거한 나머지를 뺄 경우[ ] 안에 원소의 위치를 할당하여 출력 저장할 수 있다.


Logical Values
 

 
>  3 == 4                                                        ## 3과 4가 같냐?를 물어본 것이다. 결과는 FLASE이다.
>  3  <  4                                                        ## 4가 3보다 크냐?를 물어본 것이다. 결과는 TRUE이다.
>  3  != 4                                                        ## 3이 4와 같지 않냐?를 물어본 것이다. 결과는 TRUE이다.
>  x= -3:3                                                       ## x에 -3부터 3까지 1씩 증가하면서 저장한다.
>  x< 2                                                           ## x가 2보다 작냐?를 물어본것이다. ( T,T,T,T,T,F,F )
                                                                      ## x의 원소들 중에 2보다 작은것은 T, 같거나 큰것은 F이다.
>  sum(x < 2)                                                 ##  ( T,T,T,T,T,F,F ) 결과에서 T의 갯수를 나타낸다. ( 5 )
 


 
>  height= 60:68                                                              ## height 변수에 60부터 68까지 하나씩 증가하여 할당한다.
>  weight= c(seq(120, 155, 5), 135)                                   ## weight 변수에 120부터 155까지 5씩 증가하여 할당하고, 
                                                                                       ## 135도 할당한다.
>  weight< 140                                                                 ## weight변수에서 140보다 작은가? ( T,T,T,F,F,F,T )
>  weight[weight < 140]                                                    ## weigth변수들의 140보다 작은 값을 뽑는다.
                                                                                        ## 120, 125, 130, 135, 135
>  height[height > 65]                                                       ## height변수들의 65보다 큰 값을 뽑는다. (66, 67, 68)
>  height[height < 60]                                                       ## height변수들의 60보다 작은 값을 뽑는다. (NULL)
>  weight[weight < 140 & weight != 120]                           ## weigth변수들의 140보다 작고 120이 아닌값을 뽑는다.
                                                                                        ## ( 125, 130, 135, 135 )
>  weight[height > 65]                                                      ## weight변수에서 height변수가 65보다 큰수의 자리를 뽑는다.
                                                                                        ## weight[F,F,F,F,F,F,T,T,T] => 150, 155,135
>  height[weight < 130]                                                    ## height변수에서 weight변수가 130보다 작은수의 자리를 뽑는다.
                                                                                        ## height[T,T,F,F,F,F,F,F,F] => 60,61 


실습 : R-code 2  실습 모범 답안

image:R2-1.jpg


1. x  = seq(2,10,2)
    y  = 1:5
   일때 z 값을 구하시오?

2. 앞에서 구한 z값을 이용하여 함수 f(x,y,z)의 값을 구하시오?

3. 지수함수의 테일러 급수는 다음과 같이 표현할 수 있다. 
    테일러 급수에서 x=3, K=0, ... ,10까지 결과는 ?

4. 다음과 같은 식의 합을 구하여라.