asancpt/subintern

dplyr, ggplot2를 활용한 자료 분석

shanmdphd opened this issue · 7 comments

@Jayoon-Kim @Schu1121 @drshin93 @maronbam @mintnia @yoonsoo940412 선생님들께

어제 보여드렸던 dplyr을 활용해서 간단하게나마 자료 분석을 하고 ggplot2로 그림을 그리고 이를 Rmarkdown 파일로 제출해 주세요. 어떤 종류의 분석이든 상관 없고 여러분끼리 상의해서 해도 좋습니다. 😃 결과를 아래 댓글로 달아주세요.
감사합니다.

한성필 드림

박정빈 선생님, 잘 하셨어요! 😄
Rmd | pdf

  1. smoking과 ACS 발병 연령의 상관관계가 보고된 논문이 있는지 찾아보시고 2개정도만 알려주세요.
  2. 각 그림과 표 밑에 Table 1. ~~ 혹은 Figure 1. ~~ 등으로 영어로 설명을 달아주세요.

Smoking 여부에 따른 ACS 발병 연령의 차이

서론

(current) Smoker는 과거에 100개피 이상의 흡연력이 있고, 최근 28일 이내에 흡연한 적이 있는 사람으로 정의한다. 그리고 Ex-smoker는 과거에 100개피 이상의 흡연력이 있고, 최근 28이내에 흡연한 적이 없는 사람을 칭한다. Non-smoker는 과거에 100개피 이하의 흡연력이 있으며 최근의 흡연력이 없는 사람이다.

이 분석에서는 857명의 acute coronary syndrome 환자에서 현재 혹은 과거의 smoking status가 ACS의 발병 연령에 어떤 영향을 미치는지를 보고자 한다.

방법

moonBook::acs 자료를 사용하였다.

결과

Non-smoker, Ex-smoker, Smoker 중 smoker의 ACS 발병 연령이 낮은 것으로 나타났다.

library(tidyverse)
library(readxl)

raw_acs <- read_excel('acs.xlsx') %>% 
  mutate(age = as.numeric(age))

raw_acs %>% 
  group_by(smoking) %>% 
  summarise(median_age = median(age, na.rm = TRUE),
            sd_age = sd(age, na.rm = TRUE))

Table 1. Onset age of patients with acute coronary syndromes according to smoking status

qplot(x = smoking, y = age, data = raw_acs, geom = 'boxplot')

Figure 1. Onset age of patients with acute coronary syndromes according to smoking status

ACS을 구성하는 Unstable angina, NSTEMI, STEMI 중에서는 NSTEMI와 STEMI의 발병 연령이 smoker에서 유의하게 낮게 나타났다.

raw_acs %>% 
  mutate(age = as.numeric(BMI)) %>% 
  group_by(Dx, smoking) %>% 
  summarise(median_age = median(age, na.rm = TRUE),
            sd_age = sd(age, na.rm = TRUE))

Table 2. Onset age of patients with unstable angina, NSTEMI, STEMI according to smoking status

qplot(x = smoking, y = age, data = raw_acs, geom = 'boxplot', facets = . ~ Dx)

Figure 2. Onset age of patients with unstable angina, NSTEMI, STEMI according to smoking status

결론

흡연력은 ACS의 발병 연령, 특히 NSTEMI,STEMI의 발병 연령에 영향을 미친다.

Reference

  1. Dominique Himbert, Martin Klutman, Gabriel Steg, et al.
    Cigarette smoking and acute coronary syndromes: A multinational observational study
    Int J Cardiol. 2005 Apr 8;100(1):109-17.

  2. Hidenori Yagi, Kimiaki Komukai, Koichi Hashimoto, et al.
    Difference in risk factors between acute coronary syndrome and stable angina pectoris in the Japanese: Smoking as a crucial risk factor of acute coronary syndrome
    Int J Cardiol. 2010 May ;55(3):345-353.

신영하 선생님, 잘 하셨어요!! 😄 rpubs.com에 올린 것도 잘 보았습니다❗️ moonBook 패키지에서 자료를 직접 가져오는 방법도 아주 좋은 시도였습니다.
Rmd | pdf

  1. 그림 뿐만 아니라 각각을 수치화해서 표로 볼수 있게 정리해 주시면 더 좋을 것 같습니다 🍺
  2. 각 그림과 표 밑에 Table 1. ~~ 혹은 Figure 1. ~~ 등으로 영어로 설명을 달아주세요.

흡연 과거력과 ACS 종류와의 상관관계

Rmarkdown 링크

서론

이 분석에서는 857명의 acute coronary syndrome 환자에서 흡연 과거력과 ACS type 간에 상관관계가 있는지 알아보려고 합니다.

방법

moonBook::acs와 R을 사용하여 분석하였다.

결과

유의한 차이가 있었다.

library(tidyverse)
library(ggplot2)
library(readxl)
library(dplyr)
library(moonBook)

raw_acs <- moonBook::acs
summ_acs <- count(raw_acs, Dx, smoking)
knitr::kable(head(summ_acs, 6), caption = 'Table. 1')
ggplot(data = raw_acs) + geom_bar(mapping = aes(x = Dx)) + facet_wrap(~ smoking)

결론

유의한 차이가 있는 것처럼 보이지만 더 자세한 분석이 필요하다.

김자윤 선생님, 잘 하셨어요! ggplot 사용 시도해 본것도 좋네요. 😸

DM과 ACS 발병연령 상관관계 여부

서론

DM과 ACS 발병연령에 상관관계가 있는지 확인해보았다.

방법

R을 이용

library(tidyverse)
library(readxl)

raw_acs <- read_excel('acs.xlsx') %>%
  mutate(age = as.numeric(age))

raw_acs %>%
  group_by(DM) %>%
  summarise(median_age = median(age, na.rm = TRUE), sd_age = sd(age, na.rm = TRUE))

qplot(x=DM, y=age, data = raw_acs, geom = 'boxplot')
library(ggplot2)
library(readxl)
library(dplyr)
library(moonBook)

raw_acs <- moonBook::acs
ggplot(data = raw_acs) + geom_bar(mapping = aes(x = Dx)) + facet_wrap(~ DM)

결론

성윤수 선생님, 잘 하셨어요. 😺 직접 acs자료 가져오고 ggplot도 시도해 본거 좋았어요.

성별과 ACS 발병의 차이

서론

이 분석에서는 857명의 acute coronary syndrome 환자에서 성별과 ACS 발병수 간에 다름이 있는지 알아본다.

방법

moonBook::acs와 R을 사용하여 분석하였다.

결과

남자의 ACS 발병 수가 더 많았다. NSTEMI, STEMI, UA 모두 여자보다 남자에서 많았으며 특히 STEMI와 UA의 차이가 NSTEMI의 차이보다 더 많이 났다.

library(moonBook)  
library(ggplot2)
library(readxl)
library(dplyr)

raw_acs <- moonBook::acs
ggplot(data = raw_acs) + geom_bar(mapping = aes(x = Dx)) + facet_wrap(~ sex)

결론

moonBook::acs 자료로 보았을 때, 여자보다 남자에서 ACS 의 발병수가 더 많았다.

ACS 환자의 LDLC 농도와 Cardiogenic Shock 발생률 간의 상관관계

서론

이 분석에서는 857명의 ACS 환자에서 LDLC 수치가 Cardiogenic Shock의 발생에 영향을 주는지 알아보고자 한다.

방법

moonBook::acs 자료를 사용하였다.

결과

분석 집단내에서 Cardiogenic Shock의 발생률은 LDLC 농도에 따라 달라지지 않았다.

library(tidyverse)
library(readxl)

raw_acs <- read_excel('acs.xlsx') %>% 
  mutate(LDLC = as.numeric(LDLC))

raw_acs %>% 
  group_by(cardiogenicShock) %>% 
  summarise(median_LDLC = median(LDLC, na.rm = TRUE),
            sd_LDLC = sd(LDLC, na.rm = TRUE))
qplot(x = LDLC, y = cardiogenicShock, data = raw_acs, geom = 'boxplot') +
  geom_point()

성별과 진단을 고려하면
NSTEMI보다 STEMI에서 cardiogenic shock이 빈발했으나 LDLC와의 상관관계는 없는 것으로 보인다.
Cardiogenic Shock은 MI의 합병증으로 발생하므로 Unstable Angina 환자에서는 나타나지 않았다.

raw_acs %>% 
  mutate(LDLC = as.numeric(LDLC)) %>% 
  group_by(sex, Dx) %>% 
  summarise(median_LDLC = median(LDLC, na.rm = TRUE),
            sd_LDLC = sd(LDLC, na.rm = TRUE))
qplot(x = LDLC, y = cardiogenicShock, data = raw_acs, geom = 'boxplot', facets = sex ~ Dx) +
  geom_point()

결론

LDLC 농도는 ACS 환자의 Cardiogenic Shock 발생에 영향을 주지 않는 것으로 보인다.

Acute Coronary Syndrome 환자에서 혈중 Triglyceride 농도와 당뇨병과의 상관관계

서론

이 분석에서는 857명의 acute coronary syndrome(ACS) 환자에서 혈중 Triglyceride(TG) 농도와 당뇨병 여부의 상관관계를 알아보고자 한다.

방법

moonBook::acs 자료를 사용하였다.

결과

유의미한 차이를 찾을 수 없었다.

library(tidyverse)
library(readxl)
library(moonBook)

setwd("C:/Users/Sohee/Documents/R/Directories")

raw_acs <- read_excel("acs.xlsx") %>% 
  mutate(TG = as.numeric(TG))

raw_acs %>% 
  group_by(DM) %>% 
  summarise(median_TG = median(TG, na.rm = TRUE),
            sd_TG = sd(TG, na.rm = TRUE))

qplot(x = DM, y = TG, data = raw_acs, geom = 'boxplot')

raw_acs %>% 
  mutate(TG = as.numeric(TG)) %>% 
  group_by(Dx, sex, DM) %>% 
  summarise(median_TG = median(TG, na.rm = TRUE),
            sd_TG = sd(TG, na.rm = TRUE))

qplot(x = DM, y = TG, data = raw_acs, geom = 'boxplot', facets = sex ~ Dx)```

```{r}
qplot(x = DM, y = TG, data = raw_acs, geom = 'boxplot')

성별과 진단을 고려해도 유의미한 차이는 없었다.

raw_acs %>% 
  mutate(TG = as.numeric(TG)) %>% 
  group_by(Dx, sex, DM) %>% 
  summarise(median_TG = median(TG, na.rm = TRUE),
            sd_TG = sd(TG, na.rm = TRUE))
qplot(x = DM, y = TG, data = raw_acs, geom = 'boxplot', facets = sex ~ Dx)

결론

ACS환자에서 TG를 비롯한 진단, 성별 등은 당뇨병 유무와 유의미한 상관관계를 가지지 않았다.

모두 수고하셨어요