[사용 함수]
함수명 | 설명 |
round() | 반올림 |
ceiling() | 올림 |
floor() | 내림 |
trunc() | 버림 |
abs() | 절대값 |
factorial() | 팩토리얼 |
choose() | combination함수 |
sqrt() | 루트값 |
log() | 로그 |
exp() | exponetial 함수 |
max() | 최대값 |
min() | 최소값 |
mean() | 평균값 |
var() | 표본분산 |
sd() | 표본표준편차 |
median() | 중간값 |
sum() | 합계 |
summary() | 자주쓰이는 함수 종합요약 |
length() | 벡터의 길이 |
which.max() | 가장 큰 값의 위치 반환 |
which() | 조건이 참인 위치를 반환 |
table() | 동일한 값 개수 확인 가능 |
[함수 I]
[round(), ceiling(), floor(), trunc() 함수]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | > ##함수 I > > # round(), ceiling(), floor(), trunc() 함수 > round(3.5) #반올림 [1] 4 > round(3.49) [1] 3 > round(3.51) [1] 4 > > # round는 짝수인 경우 go to the even digit 룰에 의해 정확히 중간은 내림을 해준다. > # 홀수는 기존에 알던 반올림과 같음 > round(2.5) [1] 2 > round(2.49) [1] 2 > round(2.51) [1] 3 > > round(pi) [1] 3 > round(pi, digits=3) # 소수점 3째짜리까지 나타냄 [1] 3.142 > print(pi, digits=3) # round와 비교 print는 소수점포함 3자리까지 나타냄 [1] 3.14 > > ceiling(3.5) #올림 [1] 4 > > # floor()와 trunc()의 차이점? > #양수일때 > floor(3.5) #내림 [1] 3 > trunc(3.5) #버림 [1] 3 > #음수일때 > floor(-3.5) #내림 [1] -4 > trunc(-3.5) #버림 [1] -3 > > # 비교 > x1 <- seq(-2, 4, by = .5); x1 [1] -2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 > X<-rbind(x1,round(x1),ceiling(x1),floor(x1),trunc(x1)) > rownames(X) <- c("real","round","ceiling","floor","trunc") ; X [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] real -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3 3.5 4 round -2 -2.0 -1 0.0 0 0.0 1 2.0 2 2.0 3 4.0 4 ceiling -2 -1.0 -1 0.0 0 1.0 1 2.0 2 3.0 3 4.0 4 floor -2 -2.0 -1 -1.0 0 0.0 1 1.0 2 2.0 3 3.0 4 trunc -2 -1.0 -1 0.0 0 0.0 1 1.0 2 2.0 3 3.0 4 | cs |
[abs() 함수 factorial(), choose() 함수]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | > # abs() 함수 factorial(), choose() 함수 > v2 <- c(1,-2,3,-4) > abs(v2) #절대값 [1] 1 2 3 4 > > factorial(3) #3! = 3*2*1 [1] 6 > factorial(5) [1] 120 > > choose(4,2) #combination함수, 4C2 = 4개 중 2개를 선택하는 방법의 수 [1] 6 > choose(5,1) [1] 5 > choose(5,2) [1] 10 | cs |
[sqrt(), log(), exp() 함수]
1 2 3 4 5 6 7 8 9 10 11 | > # sqrt(), log(), exp() 함수 > sqrt(2) #루트값 [1] 1.414214 > log(5) #자연로그 - 밑이 무리수 e인 로그 [1] 1.609438 > log2(5) #밑이 2인 로그 [1] 2.321928 > log10(1e+03) #밑이 10인 로그 [1] 3 > exp(5) #무리수e의 5승 [1] 148.4132 | cs |
[max(), min(), mean(), var(), sd(), median(), sum() 함수]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | > # max(), min(), mean(), var(), sd(), median(), sum() 함수 > vec1 <- c(1:5) > vec2 <- c("a","b","C","d","e") > max(vec1) #최대값 [1] 5 > max(vec2) #문자의 최대값 - 알파벳은 크기의 순서가 있음 [1] "e" > max("a","e","A","E") #E, 대문자가 더 크다 [1] "E" > > min(vec1) #최소값 [1] 1 > min(vec2) #문자의 최소값 [1] "a" > > mean(vec1) #평균값 [1] 3 > mean(vec2) #문자의 평균값 - 계산할 수 없어 NA반환 [1] NA Warning message: In mean.default(vec2) : 인자가 수치형 또는 논리형이 아니므로 NA를 반환합니다 > var(vec1) #분산 [1] 2.5 > sd(vec1) #표준편차 [1] 1.581139 > sum(vec1) #합계 [1] 15 > > median(vec1) #중간값 [1] 3 > median(vec2) # 홀수 개의 경우 문자도 구할 수 있음 [1] "C" > median("a","c") # NA, 오류 Error in if (na.rm) x <- x[!is.na(x)] else if (any(is.na(x))) return(x[FALSE][NA]) : argument is not interpretable as logical | cs |
[summary(), length() 함수]
1 2 3 4 5 6 7 8 9 10 | > # summary(), length() 함수 > summary(vec1) #자주쓰이는 함수 종합요약 Min. 1st Qu. Median Mean 3rd Qu. Max. 1 2 3 3 4 5 > summary(vec2) #문자형 벡터의 summary , length, class, mode 보여줌 Length Class Mode 5 character character > > length(vec1) #벡터의 길이 [1] 5 | cs |
[which.max() , table(), which() 함수]
1 2 3 4 5 6 7 8 9 10 11 12 13 | > # which.max() , table() 함수 > # R에서 최빈값을 구하기 > aa<- c(3,8,5,5,4) > table(aa) # 동일한 값 개수 확인 가능 aa 3 4 5 8 1 1 2 1 > num <- which.max(table(aa)) ; num # 가장 큰 값의 위치 반환 5 3 > table(aa)[num] # 최빈값 구하기 5 2 | cs |
1 2 3 | > x<- 1:10 > which(x>3) # x >3 에 해당하는 위치값 반환 [1] 4 5 6 7 8 9 10 | cs |
[사용자 지정 함수]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | > ## 사용자 지정 함수 > # 세제곱근 구하는 함수 생성 > t_sqrt<-function(a){ + b<-a^(1/3) + return(b) + } > > t_sqrt(8) [1] 2 > t_sqrt(100) [1] 4.641589 > > > # 최빈값 구하는 함수 생성 > Mode <- function(x){ + y<-which.max(table(x)) + return(table(x)[y]) + } > Mode(c(3,8,5,5,4)) 5 2 > > # 모분산 구하는 함수 생성 > my.var <- function(x){ + m<-mean(x) + return(sum((x-m)^2)/length(x)) + } > my.var(c(1,2,3,4,5)) [1] 2 > var(c(1,2,3,4,5)) #R함수는 표본 분산을 구한다. [1] 2.5 | cs |
출처 - 경영프로그래밍 강의 자료 (양성병 교수님)
'IT,인터넷 관련 학습 > R언어 학습' 카테고리의 다른 글
[R] dplyr 패키지 (0) | 2019.05.12 |
---|---|
[R] 함수 II (0) | 2019.05.12 |
[R] 데이터 입력 및 출력 (0) | 2019.05.12 |
[R] 데이타프레임 (data.frame) (0) | 2019.05.11 |
[R] 리스트 (List) (0) | 2019.05.11 |