[사용 함수]

함수명

설명

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)  #반올림
[14
> round(3.49)
[13
> round(3.51)
[14
> 
> # round는 짝수인 경우 go to the even digit 룰에 의해 정확히 중간은 내림을 해준다.
> # 홀수는 기존에 알던 반올림과 같음
> round(2.5)
[12
> round(2.49)
[12
> round(2.51)
[13
> 
> round(pi)
[13
> round(pi, digits=3) # 소수점 3째짜리까지 나타냄
[13.142
> print(pi, digits=3) # round와 비교 print는 소수점포함 3자리까지 나타냄
[13.14
> 
> ceiling(3.5)  #올림
[14
> 
> # floor()와 trunc()의 차이점?
> #양수일때
> floor(3.5)  #내림 
[13
> trunc(3.5)  #버림
[13
> #음수일때
> floor(-3.5)  #내림 
[1-4
> trunc(-3.5)  #버림
[1-3
> 
> # 비교 
> x1 <- seq(-24, 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)  #절대값
[11 2 3 4
> 
> factorial(3)  #3! = 3*2*1
[16
> factorial(5)
[1120
> 
> choose(4,2)  #combination함수, 4C2 = 4개 중 2개를 선택하는 방법의 수 
[16
> choose(5,1)
[15
> choose(5,2)
[110
cs


[sqrt(), log(), exp() 함수]

1
2
3
4
5
6
7
8
9
10
11
> # sqrt(), log(), exp() 함수
> sqrt(2)  #루트값
[11.414214
> log(5)  #자연로그 - 밑이 무리수 e인 로그
[11.609438
> log2(5)  #밑이 2인 로그
[12.321928
> log10(1e+03) #밑이 10인 로그
[13
> exp(5)  #무리수e의 5승
[1148.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)  #최대값
[15
> max(vec2)  #문자의 최대값 - 알파벳은 크기의 순서가 있음
[1"e"
> max("a","e","A","E") #E, 대문자가 더 크다 
[1"E"
> 
> min(vec1)  #최소값
[11
> min(vec2)  #문자의 최소값
[1"a"
> 
> mean(vec1)  #평균값
[13
> mean(vec2)  #문자의 평균값 - 계산할 수 없어 NA반환
[1] NA
Warning message:
In mean.default(vec2) :
  인자가 수치형 또는 논리형이 아니므로 NA를 반환합니다
> var(vec1)  #분산
[12.5
> sd(vec1)  #표준편차
[11.581139
> sum(vec1)  #합계
[115
> 
> median(vec1)  #중간값
[13
> 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 , lengthclass, mode 보여줌
   Length     Class      Mode 
        5 character character 
> 
> length(vec1)  #벡터의 길이 
[15
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)
[12
> t_sqrt(100)
[14.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))
[12
> var(c(1,2,3,4,5))  #R함수는 표본 분산을 구한다. 
[12.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

+ Recent posts