Practice makes perfect

[R] 주요 내장 함수 본문

빅데이터/R

[R] 주요 내장 함수

kerpect 2020. 7. 1. 20:35
728x90
반응형
SMALL

1. 행 단위, 컬럼 단위 합계와 평균 구하기 

 

 단계1 : 데이터 셋 불러오기 

install.packages("RSADBE") - pakage 다운로드

library(RSADBE) - 메모리 할당 

data(Bug_Metrics_Software) 데이터 셋을 불러옵니다.

class(Bug_Metrics_Software) - 데이터 구조 정보를 알려줍니다. 
출력값 : [1] "xtabs" "table"

Bug_Metrics_Software[,,1] # 제품 출시 전 

Bugs
출력값:
Software   Bugs NT.Bugs Major Critical H.Priority
JDT     11605   10119  1135      432        459
PDE      5803    4191   362      100         96
Equinox   325    1393   156       71         14
Lucene   1714    1714     0        0          0
Mylyn   14577    6806   592      235       8804

Bug_Metrics_Software[,,2] # 제품 출시 후 

Bugs
출력값: 
Software  Bugs NT.Bugs Major Critical H.Priority
JDT      374      17    35       10          3
PDE      341      14    57        6          0
Equinox  244       3     4        1          0
Lucene    97       0     0        0          0
Mylyn    340     187    18        3         36

 

 

단계2 : 소프트웨어 발표 전 행 단위 합계와 평균 구하기 

rowSums(Bug_Metrics_Software[,,1]) -- rowsum : 행의 합계를 출력합니다. 

출력값:
JDT     PDE Equinox  Lucene   Mylyn 
23750   10552    1959    3428   31014

rowMeans(Bug_Metrics_Software[,,1]) -- rowMeans : 행의 평균값을 출력합니다. 

출력값: 
#JDT     PDE Equinox  Lucene   Mylyn 
#4750.0  2110.4   391.8   685.6  6202.8

- rowSums : 열의 합계를 출력

- rowMeans : 열의 평균을 출력

 

 

 

 단계3 : 소프트웨어 발표 전 열 단위 합계와 평균 구하기

colSums(Bug_Metrics_Software[,,1])  colSums -- 열의 합계를 출력합니다. 

- 출력값 -
Bugs    NT.Bugs      Major   Critical H.Priority 
34024      24223       2245        838       9373 

- 출력값 -
colMeans(Bug_Metrics_Software[,,1])  colMeans -- 열의 평균값을 출력합니다.
#Bugs    T.Bugs      Major   Critical H.Priority 
#6804.8     4844.6      449.0      167.6     1874.6 

- colSums : 행의 합계 출력

- colMeans : 행의 평균 출력

 

 

2. 기술 통계량 관련 내장 함수 사용 예 

seq(-2,2, by= .2) # seq(시작값, 마지막 값, 증가값) 

- 출력값-
[1] -2.0 -1.8 -1.6 -1.4 -1.2 -1.0 -0.8 -0.6 -0.4 -0.2  0.0  0.2   
     0.4  0.6  0.8  1.0  1.2  1.4  1.6  1.8  2.0


vec <- 1:10 
vec
- 출력값-
[1]  1  2  3  4  5  6  7  8  9 10



min(vec)
- 출력값-
[1] 1 (최소값)


max(vec)
- 출력값-
[1] 10 (최대값)


range(vec)
- 출력값-
[1]  1(최소값) 10(최대값)


mean(vec)
- 출력값-
[1] 5.5 (평균값)


median(vec)
- 출력값-
[1] 5.5 (데이터의 중간값)


sum(vec)
- 출력값-
[1] 55 (총합)


sd(rnorm(10))
- 출력값-
[1] 0.991409 (표준편차)


table(vec) # 요인의 빈도수 
vec 
- 출력값-
 1  2  3  4  5  6  7  8  9 10 
 1  1  1  1  1  1  1  1  1  1 

 

 

 

 

3. 난수와 확률 분포 관계 

난수 : 기준이 되어지는 값을 지정해서 , 그 값이 절대 중복되지 않는 개념으로 수를 발생시켜 우리가 보기에는 난수처럼 보이게 하는 것이다. (default 값 : 현재 시간의 1/1000초 기준)

 

 

1 단계 : 정규 분포 (연속형)의 난수 생성

n <- 1000
r <- rnorm(n, mean = 0, sd = 1) # 평균 0, 표준편차 1 = 정규 분포 
hist(r) # 대칭성

 

정규분포 rnorm( ) : 확률변수 X가 정규분포를 따르면 평균값에 대해 좌우 대칭이고, 분산값이 크면 더 크게 흩어진 분포를 갖습니다.

 

히스토그램 hsit() : 특정 데이터의 빈도수를 보는 것을 히스토그램이라고 합니다. 산포도와 더불어서 자주사용하는 그래프중 하나로 현재 상태를 대략적으로 볼 수 있습니다.

 

 

 

2 단계 : 균등분포(연속형)의 난수 생성

n <- 1000
r2 <- runif(n, min = 0, max= 1) # 0 < r2 < 1 
hist(r2)

 

균등분포 runif() : 균등분포는 확률분포가 취하는 모든 구간에서 일정한 확률을 가지는 분포입니다.

 

 

 3 단계 : 이항분포(이산형) 난수 생성

n <- 20
rbinom(n, 1, prob = 1/2) # 1/2 의 확률로 20개의 이상변수를 0과 1의 값을 가지는 이항분포를 생성 

- 출력값 - 
[1] 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0

rbinom(n, 2, prob = 1/2) # 1/2 의 확률로 20개의 이상변수를 0 ~ 2의 값을 가지는 이항분포를 생성 

- 출력값 - 
[1] 2 2 1 1 2 1 1 1 2 0 1 0 0 2 1 2 0 1 1 1

rbinom(n, 10, prob = 1/2) # 1/2 의 확률로 20개의 이상변수를 0 ~ 10의 값을 가지는 이항분포를 생성 

- 출력값 - 
[1] 3 3 6 4 4 3 7 3 5 7 6 6 5 5 4 4 3 3 5 7

 

 

4 단계 : 종자값(seed)으로  동일한 난수 생성.

rnorm(5, mean=0, sd=1) # 정규 분포 (평균 0, 표준편차 1)

- 출력값 1 - 
[1]  0.7393503  0.6653646 -0.5210477 -1.3716350 -1.2954320

- 출력값 2 - 
[1] -0.02988800  0.05601044 -0.29434405 -0.67715103  0.45006390

- 출력값 3 - 
[1]  0.46050159 -0.55269490 -0.01527421 -0.24496429 -0.05962877

규칙적인 느낌으로 출력 됩니다.(random)

 

set.seed(123)
rnorm(5, mean=0, sd=1)

- 출력값 1 -
[1] -0.56047565 -0.23017749  1.55870831  0.07050839  0.12928774

- 출력값 2 -
[1] -0.56047565 -0.23017749  1.55870831  0.07050839  0.12928774

 

seed 값을 통일시키면 같은 값이 출력됩니다.

 

 

 

4. 수학 관련 내장함수 사용 예 

vec <- 1:10 # combine함수 생략 가능 
prod(vec) # product : 벡터 원소들의 곱셈

- 출력값 -
[1] 3628800 (1*2*3*4*...*10)


factorial(3)

- 출력값 -
[1] 6 


abs(-5) # 절대값 

- 출력값 -
[1] 5


sqrt(16) # 제곱근

- 출력값 -
[1] 4


log(10) # 10의 자연로그 (밑수가 e)

- 출력값 -
[1] 2.302585


log10(10) # 10의 일반로그(밑수가 10)

- 출력값 -
[1] 1

 

 

5. 집합연산 내장함수 

x <- c(1,3,5,7,9)
y <- c(3,7)


union(x,y) # 집합 x와 y의 합집합

- 출력값 - 
[1] 1 3 5 7 9


intersect (x, y) # 집합 x와 y의 교집합

- 출력값 - 
[1] 3 7


setequal(x, y) # x와 y의 동일성 테스트

- 출력값 - 
[1] FALSE 


setdiff(x, y) # x의 모든 원소 중 y에는 없는 x와 y의 차집합

- 출력값 - 
[1] 1 5 9
728x90
반응형
LIST