본문 바로가기
R 주제/R 기초 및 통계 강의

[R강의] 127. 평균±표준편차(최솟값,최댓값) 출력하는 함수 만들기

by 만다린망고 2021. 12. 29.
반응형

 

 

논문에 데이터를 정리한 표들을 보면 아래와 같은 형태가 많이 등장합니다. 

 

평균±표준편차(최솟값,최댓값)

 

데이터를 이용하여 위 값들을 구하려면 함수를 네번 사용해야합니다. 매번 코딩하기 귀찮아서 함수를 만들었습니다. 아예 위와 같은 형태로 정리되서 출력되도록 만든 함수입니다. 

 

함수를 만드는 과정을 설명하겠습니다. 함수 이름은 MSMM 이라고 놓겠습니다. Mean,Standard deviation, Min, Max 의 줄임말입니다. 입력값은 데이터입니다. 벡터 형태로 입력받습니다. 

 

MSMM=function(my_data)
{
}

 

평균,표준편차,최솟값,최댓값을 구해줍니다. 결측치가 있을 수도 있으니 na.rm=TRUE 라는 옵션을 설정합니다. 결측치가 있을 경우 제거하라는 옵션입니다. 

 

MSMM=function(my_data)
{
m=mean(my_data,na.rm=TRUE)
sd=sd(my_data,na.rm=TRUE)
min=min(my_data,na.rm=TRUE)
max=max(my_data,na.rm=TRUE)

}

s

값이 떨어지지 않는 경우 소수점이 너무 많이 출력되므로, 몇 번째 소수점 까지 출력할지를 선택하게 해줍시다. decimal 이라는 변수를 추가하고, 반올림에 사용해줍니다. 

 

MSMM=function(my_data,decimal)
{
m=round(mean(my_data,na.rm=TRUE),decimal)
sd=round(sd(my_data,na.rm=TRUE),decimal)
min=round(min(my_data,na.rm=TRUE),decimal)
max=round(max(my_data,na.rm=TRUE),decimal)

}

 

paste0 함수를 이용해서 합쳐줍니다. 

 

MSMM=function(my_data,decimal)
{
  m=round(mean(my_data,na.rm=TRUE),decimal)
  sd=round(sd(my_data,na.rm=TRUE),decimal)
  min=round(min(my_data,na.rm=TRUE),decimal)
  max=round(max(my_data,na.rm=TRUE),decimal)
  
  result=paste0(m,"±",sd," ","(",min,",",max,")")

}

 

print 함수를 이용하여 결과를 출력해주도록 합니다. 

 

MSMM=function(my_data,decimal)
{
  m=round(mean(my_data,na.rm=TRUE),decimal)
  sd=round(sd(my_data,na.rm=TRUE),decimal)
  min=round(min(my_data,na.rm=TRUE),decimal)
  max=round(max(my_data,na.rm=TRUE),decimal)
  
  result=paste0(m,"±",sd," ","(",min,",",max,")")
  print(result)
}

 

작동을 잘 하는지 확인해봅시다. 

 

> dt=1:20
> MSMM(dt,2)
[1] "10.5±5.92(20,1)"
반응형

댓글