MA VPD Tech Blog.

R 활용 사용법2

December 17, 2019 | 2 Minute Read

##R 활용 - 사용법(2/2)

작성 2019년 12월 17일 박영훈

1. 조건문과 반복문


if, for, while, repeat, switch문 등이 있다.

if문 예제 > x <- c(1:5) > ifelse(x %% 2 == 0 , “even”,”odd”) [1] “odd” “even” “odd” “even” “odd”

for 예제 > for(i in 1:3){print(i)} [1] 1 [1] 2 [1] 3

while 예제 > while(i <= 10) + { + print(i) + i <- i+1 + } [1] 1 [1] 2 [1] 3 [1] 4 [1] 5 [1] 6 [1] 7 [1] 8 [1] 9 [1] 10

repeat 예제 > repeat { + print(i) + if(i >=10){ + break + } + i<-i+1 +
+ } [1] 1 [1] 2 [1] 3 [1] 4 [1] 5 [1] 6 [1] 7 [1] 8 [1] 9 [1] 10

2.연산

+,-,*,/ : 사칙연산 n %% m : n을 m으로 나눈 나머지 n %/% m : n을 m으로 나눈 몫 n^m : n의 m승 exp(n) : e의 n승 log(x, base=exp(1)) : log base(x), base가 없으면 e sin(x),cos(x),tan(x) : 삼각함수

NA처리

NA는 값이 기록되지 않았음을 나타내는 값이다. NA를 처리하지 않기 위해 옵션을 줘야 한다. > sum(c(1,2,3,4,NA)) [1] NA > sum(c(1,2,3,4,NA), na.rm=TRUE) [1] 10

NA처리는 다음과 같다. fail - 포함되어 있으면 실패 omit - 포함된 행을 제외 exclude - 포함된 행을 제외, naresid, napredict를 사용하는 함수에서는 다시 결과에 추가함 pass - NA상관없이 진행 > x <- data.frame(a=c(1,2,3), b=c(“a”,NA, “c”), c=c(“A”,”B”,NA)) > na.fail(x) Error in na.fail.default(x) : 객체안에 결측값들이 있습니다 > > na.omit(x) a b c 1 1 a A > na.exclude(x) a b c 1 1 a A > na.pass(x) a b c 1 1 a A 2 2 B 3 3 c

3.함수정의

함수의 기본정의 > fibo <- function(n){ + if(n==1 || n==2){ + return(1) +
+ } + return (fibo(n-1)+fibo(n-2)) + } > fibo(7) [1] 13

가변길이의 함수

…을 통해 가변인자를 사용할 수 있다. > f <-function(x, y){ + print(x) + print(y) +
+ } > > g<-function(z, …){ + print(z) + f(…) + } > g(1,2,3) [1] 1 [1] 2 [1] 3

4.값에 의한 전달

R에서는 모든것이 객체이다. 객체는 함수 호출시 일반적으로 값으로 전달된다. 이를 변수에 대한 참조에 의한 방식에 대비해 값에 의한 전달이라고 한다. 즉, 복사하여 전달된다는 의미이다. > f <- function(df){ + df$a <- c(1,2,3) + return(df) +
+ } > df <- data.frame(a=c(4,5,6)) > df a 1 4 2 5 3 6 > df <- f(df) > df a 1 1 2 2 3 3



로고