반응형
검정결과 등을 커멘드 창에서 입력해서 보는 것이 불편합니다. t검정을 예로 들면, t검정 결과가 오른쪽 plot 창에 출력되면 편리할 것입니다. 또는 새 탭에 표 형식으로 출력할 수도 있습니다. 두 방법 모두 설명드리겠습니다.
한가지 상황을 가정하겠습니다. A,B 두 집단의 키와 몸무게 비교하는 상황입니다. 아래와 같은 표를 출력하는 것이 목적입니다.
A집단 | B집단 | p-value | |
키 | 평균±표준편차 | 평균±표준편차 | p값 |
몸무게 | 평균±표준편차 | 평균±표준편차 | p값 |
1. View로 출력하는 방법
설명은 코드 주석으로 대신합니다.
library(plotrix)
library(dplyr)
#데이터 생성
A_Height=rnorm(100,183,3)
B_Height=rnorm(100,172,5)
A_Weight=rnorm(100,65,3)
B_Weight=rnorm(100,71,5)
#평균 계산
mean_AH=mean(A_Height) %>% round(1)
mean_BH=mean(B_Height) %>% round(1)
mean_AW=mean(A_Weight) %>% round(1)
mean_BW=mean(B_Weight) %>% round(1)
#표준편차 계산
sd_AH=sd(A_Height) %>% round(1)
sd_BH=sd(B_Height) %>% round(1)
sd_AW=sd(A_Weight) %>% round(1)
sd_BW=sd(B_Weight) %>% round(1)
#t검정
t_H=t.test(A_Height,B_Height)
t_W=t.test(A_Weight,B_Weight)
#표 셀 생성
C11=paste0(mean_AH,'±',sd_AH)
C12=paste0(mean_BH,'±',sd_BH)
C13=t_H$p.value %>% round(3)
C21=paste0(mean_AW,'±',sd_AW)
C22=paste0(mean_AW,'±',sd_AW)
C23=t_W$p.value %>% round(3)
#표 생성
my_table=rbind(data.frame(A=C11,B=C12,p=C13),
data.frame(A=C21,B=C22,p=C23))
colnames(my_table)=c("A집단","B집단","p-value")
rownames(my_table)=c("키","몸무게")
View(my_table)
아래와 같이 출력됩니다.
2. plot 창에 출력하는 방법
설명은 코드 주석으로 대신합니다. plotrix 패키지를 설치해주셔야합니다. 이 패키지에 있는 addtable2plot 함수를 사용합니다.
library(plotrix)
library(dplyr)
#데이터 생성
A_Height=rnorm(100,183,3)
B_Height=rnorm(100,172,5)
A_Weight=rnorm(100,65,3)
B_Weight=rnorm(100,71,5)
#평균 계산
mean_AH=mean(A_Height) %>% round(1)
mean_BH=mean(B_Height) %>% round(1)
mean_AW=mean(A_Weight) %>% round(1)
mean_BW=mean(B_Weight) %>% round(1)
#표준편차 계산
sd_AH=sd(A_Height) %>% round(1)
sd_BH=sd(B_Height) %>% round(1)
sd_AW=sd(A_Weight) %>% round(1)
sd_BW=sd(B_Weight) %>% round(1)
#t검정
t_H=t.test(A_Height,B_Height)
t_W=t.test(A_Weight,B_Weight)
#표 셀 생성
C11=paste0(mean_AH,'±',sd_AH)
C12=paste0(mean_BH,'±',sd_BH)
C13=t_H$p.value %>% round(3)
C21=paste0(mean_AW,'±',sd_AW)
C22=paste0(mean_AW,'±',sd_AW)
C23=t_W$p.value %>% round(3)
#표 생성
my_table=rbind(data.frame(A=C11,B=C12,p=C13),
data.frame(A=C21,B=C22,p=C23))
colnames(my_table)=c("A집단","B집단","p-value")
rownames(my_table)=c("키","몸무게")
#빈 plot 생성
plot.new()
plot.window(xlim=c(0,10),ylim=c(0,10))
#표출력
addtable2plot(0 ,5,my_table,bty="o",display.rownames=TRUE,hlines=TRUE,
vlines=TRUE,title="The table",cex=2)
출력 결과는 아래와 같습니다. cex로 사이즈 조절하시면 됩니다.
반응형
'R 주제 > R 기초 및 통계 강의' 카테고리의 다른 글
[R강의] 112. 상위 5개 숫자 추출하기 (2) | 2021.05.31 |
---|---|
[R강의] 111. 산점도 그래프 회전 (5) | 2021.05.26 |
[R강의] 109. 도수분포다각형 (0) | 2021.03.24 |
[R강의] 108. 표준정규분포표 만들기 (0) | 2021.03.22 |
[R강의] 107. 히스토그램에서 density는 상대도수가 아닙니다. (0) | 2021.01.07 |
댓글