티스토리 뷰

R/Process

[R] 연산

Aaron 2019. 1. 2. 22:00
반응형

연산




 수치연산자와 함수





 벡터 연산 


벡터 연산벡터의 요소별로 계산을 수행할 수 있고, 대체적으로 for문 없이도 연산이 가능합니다.(단, if문 제외)

 


> x <- c(1,1,2,2,3,3)

> x + 10

[1] 11 11 12 12 13 13

> x + x

[1] 2 2 4 4 6 6

> x == c(1,2,2,3,4,4)

[1]  TRUE FALSE  TRUE FALSE FALSE FALSE



 벡터의 산술 연산 


> x <- c(90,80,75,85)

> sum(x)     # 합

[1] 330

> mean(x)   # 평균

[1] 82.5

> median(x) # 중앙값

[1] 82.5



# sum과 mean 사용 시 주의사항

> help(sum)

sum(..., na.rm = FALSE) # 인자가 확장형으로 설계

> sum(1,2,3)     # 사용 가능하지만 이런 표현식은 왠만하면 사용하지 않는게 좋음

[1] 6

> sum(c(1,2,3))  # 여러 값일아면 벡터를 사용해주는 것이 올바른 표현식

[1] 6  


> help(mean)

mean(x, ...)   # 인자가 하나의 x 값이 오도록 설계

> mean(1,2,3)    # 2,3은 무시되고 첫 번째 인자인 1의 평균이 출력

[1] 1

> mean(c(1,2,3)) # 벡터로 집단을 사용해야 집단의 평균이 출력

[1] 2

# 이왕이면 R에서 여러 값을 사용 시 집합으로 써주는게 더 좋은 표현




 

 불리언(boolean) 색인 :  true에 해당하는 값만 추출 


> x <- c(90,80,75,85)

> x

[1] 90 80 75 85

> x %% 2 == 0

[1]  TRUE  TRUE FALSE FALSE

> x[x %% 2 == 0]

[1] 90 80



 NA 처리


NA(결측치)가 포함된 경우, 모든 연산의 결과는 NA로 리턴됩니다.


> NA + 1

[1] NA

> NA * 10

[1] NA


# 이를 방지하기 위해 데이터에 결측치가 있을 경우, 치환 혹은 삭제 작업이 필요합니다.

# 결측치가 포함된 경우 na.rm 옵션을 사용하여 NA를 무시하는 연산이 가능합니다. (na.rm=TRUE)

> x <- data.frame(a=c(1,2,3), b=c(4,NA,6), c=c(7,8,NA))

> x

  a  b  c

1 1  4  7

2 2 NA  8

3 3  6 NA

> na.fail(x)       # na 포함 시 실패. if문에서 error 처리용으로 사용되기도 합니다.

Error in na.fail.default(x) : 객체안에 결측값들이 있습니다

> na.omit(x)     # na 포함 행 제외

  a b c

1 1 4 7

> na.exclude(x) # na 포함 행 제외

  a b c

1 1 4 7

# 주로 omit과 exclude 가 많이 사용됩니다. 두 함수는 비슷하지만 약간의 차이가 있습니다.

# na.exclude() 함수는 naresid(), napredict() 함수 사용 시 NA로 제외한 행을 결과에 다시 추가해줍니다.


> na.pass(x)    # na 여부에 상관없이 pass

  a  b  c

1 1  4  7

2 2 NA  8

3 3  6 NA






참고: KIC 캠퍼스 머신러닝기반의 빅데이터분석 양성과정

반응형
댓글
최근에 올라온 글
최근에 달린 댓글
링크
Total
Today
Yesterday