(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
'R 주제 > R 코딩 연습문제' 카테고리의 다른 글
[R 코딩 연습문제] 가장 가까운 원소 인덱스 출력 (0) | 2022.05.11 |
---|---|
[R 코딩 연습문제] 두배씩 커지는 수열 만들기 (0) | 2022.05.05 |
[R 코딩 연습문제] 피타고라스 음계 구하기 (0) | 2022.04.02 |
[R 코딩 연습문제] 구구단을 출력하는 함수를 만들어봅시다. (0) | 2020.03.14 |
[R 코딩 연습문제] 두 수를 입력하면 비교결과를 출력해주는 함수를 만들어봅시다. (0) | 2020.03.14 |
댓글