본문 바로가기
R 주제/R 코딩 연습문제

[R 코딩 연습문제] 두 데이터의 평균, 표준편차, 총합, 원소 수를 비교해주는 함수

by 만다린망고 2020. 3. 14.
반응형

 

 

 

 

(R 코딩실력 향상을 위한 연습문제입니다.)

 

Question

 

두 데이터를 벡터로 입력받고, 두 데이터의 평균, 표준편차, 총합, 원소 수를 비교해주는 함수를 만들어 봅시다. 

 

아래와 같은 결과가 출력되야 합니다. 

 

 

 

Answer

 

먼저 1강에서 배운 크기비교함수를 아래와 같이 변형하겠습니다. 

 

comp=function(a,b)

{

  if (a>b) {results=">"}

  else if (a<b) {results="<"}

  else {results="="}

}

 

비교결과의 부등호 방향을 반환하는 함수입니다. 

 

myfun=function(d1,d2)

{

  #두 데이터의 통계량을 구함

  stat_d1=c(mean(d1),sd(d1),sum(d1),length(d1))

  stat_d1=round(stat_d1,2)

  stat_d2=c(mean(d2),sd(d2),sum(d2),length(d2)) 

  stat_d2=round(stat_d2,2)  

 

 #두 데이터의 통계량을 각각 비교하는 부등호를 vs라는 변수에 저장

  vs=1:4

  for (i in 1:4)

  {

    vs[i]=comp(stat_d1[i],stat_d2[i])

  }

  

  #두 데이터의 통계량과, 부등호가 저장된 vs로 데이터프레임 만들기

  summary=data.frame(stat_d1,vs,stat_d2,

                     row.names=c("mean","sd","sum","N"))

  #데이터프레임의 열이름에 해당되는 두 데이터의 이름을 입력벡터의 이름으로 받아서 사용 

  names(summary)=c(substitute(d1),"",substitute(d2))

  summary

}

 

 

결과를 확인해봅시다. 

 

> data1=c(10,23,15,24,15,26)

> data2=c(15,25,16,17,28,34,15,23,74)

> myfun(data1,data2)

      data1    data2

mean  18.83 <  27.44

sd     6.37 <  18.66

sum  113.00 < 247.00

N      6.00 <   9.00

 

 

반응형

댓글