티스토리 뷰
연산
수치연산자와 함수
벡터 연산
벡터 연산은 벡터의 요소별로 계산을 수행할 수 있고, 대체적으로 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 캠퍼스 머신러닝기반의 빅데이터분석 양성과정
'R > Process' 카테고리의 다른 글
[R] 데이터 포맷 변경 함수 - sprintf(), gettextf() 함수 (0) | 2019.01.04 |
---|---|
[R] 함수의 정의 (0) | 2019.01.02 |
[R] 정규 표현식 - 정규 표현식을 사용한 데이터 추출 (0) | 2019.01.02 |
[R] 문자열 관련 함수 - stringr 패키지, 정규식 (1) | 2019.01.01 |
[R] 반복문 - for, while, next, repeat, exit, break (2) | 2019.01.01 |