[R 기초] 사용자정의함수, 재귀함수, z-test #function #recursive #z-test #정규분포
함수 function() 사용자 정의 함수
예시)
> myfac <-function(x){
+ fact<-1
+ i<-x
+ while(i>1){
+ fact<-fact*i
+ i<-i-1
+ }
+ return (fact)
+ }
> myfac(3)
#팩토리얼을 구하는 함수
[1] 6
> mySum <-function(x,y=5){
+ return (x+y)
+ }
> mySum(1)
#기본 전달인자를 가질 수 있다
[1] 6
재귀함수 recursive function
> fact<-function(x){
+ if(x<2){
+ prod<-x
+ return(1)
+ }else{
+ prod<-x*fact(x-1)
+ return(prod)
+ }
+ }
> fact(4)
[1] 24
재귀함수 z-test , 모집단의 표준편차를 알 경우 표준정규분포로 부터 검정통계량 z를 계산
예시)
> ztest <- function(x, sd.p=NULL, mu=0, alternative="two.sided"){
+ n<- length(x)
+ sd<- ifelse(is.null(sd.p),sd(x),sd.p)
+ se<- sd/sqrt(n)
+ test<-mean(x)-mu
+ t.stat <- test/se
+ bias <- x-mean(x)
+ p.value <- 2*(ifelse(t.stat<0, pnorm(t.stat),1-pnorm(t.stat)))
+ out<-list(stat=t.stat, p.value=p.value, bias=bias)
+ return (out)
+ }
# sd.p: 모표준편차 mu:모평균 sd: 표본표준편차 se:표준오차 z=(표본평균-모평균)/(표준편차/표본갯수제곱근)
#pnorm() z검정통계량에 의해 정규분포에서의 면적 즉, 확률을 구하는 함수
#유의수준에 따라 p-value와 비교를 통해 귀무가설 기각 여부를 결정한다
> x<-rnorm(30)
> ztest(x)
$stat
[1] -1.07
$p.value
[1] 0.285
$bias
[1] 0.9858 1.1516 0.1218 0.9768 0.5025 0.2787 0.2133
[8] 1.6952 -0.5348 -0.7113 -0.2341 1.7448 -2.0782 0.2058
[15] -0.1954 -0.0755 -1.1931 0.4192 1.9656 -1.6750 -0.7364
[22] 1.1904 0.0918 0.4103 -1.8026 -1.7824 -1.2120 0.3419
[29] -0.8854 0.8206
'Data > R' 카테고리의 다른 글
[R 기초] 통계, 분포함수, t-검정 (0) | 2016.03.06 |
---|---|
[R 기초] 패키지와 그래프 (0) | 2016.03.06 |
[R 기초] 파일 가져오기, 데이터 뽑기, 조건문, 반복문 (0) | 2016.03.06 |
[R 기초] 배열, 행렬, 요인, 데이터프레임, 리스트, 함수적용 (0) | 2016.03.06 |
[R]4.소셜 네트워크 감정 분석 sentiment analysis (6) | 2016.02.19 |