---
title: "国際脳MRIチュートリアルRmarkdownプログラム"
author: "奥村安寿子・小池進介｜東京大学"
date: "`r format(Sys.time(), '%Y/%m/%d')`  "
output:
  html_document:
    toc: true
    toc_depth: 3
    toc_float: true
    df_print: paged
    keed_me: true
    theme: flatly
---

<style>
    body .main-container {
        max-width: 1800px;
    }
</style>

## **1. データの確認**
### **1-1. Excelデータの取り込み・列名変更**
```{r, echo=TRUE, warning=FALSE, message=FALSE}
library(openxlsx)
library(tidyverse)
Rdata <- read.xlsx("./第3回国際脳MRI・臨床データ解析チュートリアル アンケート（回答）.xlsx",sheet = 1) 
cn <- read.xlsx("./第3回国際脳MRI・臨床データ解析チュートリアル アンケート（回答）.xlsx", sheet = 2) 
names(Rdata) <- cn[,2]
Rdata <- Rdata[,-1]

Rdata1 <- Rdata %>% 
  select(!starts_with("Notes")) # selection
Rdata1[!Rdata1$Field %in% c("神経科学", "精神医学", "神経内科学", "放射線医学","その他医学"), 2] <- "複数・他"

Rdata1.temp <- data.frame(
  factor(Rdata1[,1],  levels = c("学部学生", "大学院学生", "研究員", "教員・研究職", "医療職","技術支援スタッフ","民間企業研究者")),
  factor(Rdata1[,2],  levels = c("神経科学", "精神医学", "神経内科学", "放射線医学", "その他医学", "複数・他")),
  factor(Rdata1[,3],  levels = c("ほぼ未経験", "１年未満", "１～３年", "３～５年", "５年以上", "１０年以上")),
  factor(Rdata1[,4],  levels = c("やさしすぎる", "やさしい", "ちょうどよい", "難しい", "難しすぎる", "不参加")), 
  factor(Rdata1[,5],  levels = c("やさしすぎる", "やさしい", "ちょうどよい", "難しい", "難しすぎる", "不参加")),  
  factor(Rdata1[,6],  levels = c("やさしすぎる", "やさしい", "ちょうどよい", "難しい", "難しすぎる", "不参加")),  
  factor(Rdata1[,7],  levels = c("やさしすぎる", "やさしい", "ちょうどよい", "難しい", "難しすぎる", "不参加")),  
  factor(Rdata1[,8],  levels = c("やさしすぎる", "やさしい", "ちょうどよい", "難しい", "難しすぎる", "不参加")),  
  factor(Rdata1[,9],  levels = c("満足", "やや満足", "どちらでもない", "やや不満足", "不満足", "不参加")),  
  factor(Rdata1[,10], levels = c("満足", "やや満足", "どちらでもない", "やや不満足", "不満足", "不参加")),  
  factor(Rdata1[,11], levels = c("満足", "やや満足", "どちらでもない", "やや不満足", "不満足", "不参加")),  
  factor(Rdata1[,12], levels = c("満足", "やや満足", "どちらでもない", "やや不満足", "不満足", "不参加")),  
  factor(Rdata1[,13], levels = c("満足", "やや満足", "どちらでもない", "やや不満足", "不満足", "不参加")),  
  factor(Rdata1[,14], levels = c("長すぎる", "長い", "ちょうどよい", "短い", "短すぎる", "不参加")), 
  factor(Rdata1[,15], levels = c("長すぎる", "長い", "ちょうどよい", "短い", "短すぎる", "不参加")), 
  factor(Rdata1[,16], levels = c("長すぎる", "長い", "ちょうどよい", "短い", "短すぎる", "不参加")), 
  factor(Rdata1[,17], levels = c("長すぎる", "長い", "ちょうどよい", "短い", "短すぎる", "不参加")),  
  factor(Rdata1[,18], levels = c("長すぎる", "長い", "ちょうどよい", "短い", "短すぎる", "不参加")),  
  factor(Rdata1[,19], levels = c("大変良かった", "良かった", "どちらでもない", "あまりよくなかった", "良くなかった")),  
  factor(Rdata1[,20], levels = c("とても役立つ", "役立つ", "どちらでもない", "役立たない", "全く役立たない")),
  Rdata1[,21:37])
colnames(Rdata1.temp) <- colnames(Rdata1)
Rdata1 <- Rdata1.temp
  

Rdata2 <- Rdata %>% select(Occupation, Field, MRIanalysisYear, starts_with("Notes")) # free comments
```

### **1-2. 変数-質問対応表**
```{r, echo=TRUE, warning=FALSE, message=FALSE}
library(DT) #DTパッケージを読み込む
VQ <- cn[-1,2:3]
datatable(VQ)
```

### **1-3. Excelデータの確認**
```{r, echo=TRUE, warning=FALSE, message=FALSE}
library(DT) #DTパッケージを読み込む
datatable(Rdata, options = list(
      autoWidth = TRUE,
      scrollX = TRUE,
      scrollY = '600px',
      scrollCollapse = F,
      columnDefs = list(list(className = 'dt-nowrap', targets = 0:4)),
      fillContainer = T))
```
___
## **2. 欠損値の確認**
### **2-1. miceパッケージ**
```{r, echo=TRUE, warning=FALSE, message=FALSE, fig.width=9}
library(mice) #miceパッケージを読み込む
par(ps = 9)
md.pattern(Rdata, rotate.names = T)
```

___
## **3. Distribution**
### **3-1. dfSummary()**
```{r, echo=TRUE, warning=FALSE, message=FALSE}
library(summarytools)
print(dfSummary(Rdata1, graph.col = F, plain.ascii = F, style = "grid", max.string.width = 150, varnumbers=F,col.widths = c(80,280,80,80,80)), method = "render")
```

### **3-2. geom_bar()**
```{r, echo=TRUE, warning=FALSE, message=FALSE}
library(ggplot2)
g <- list()
for(i in 1:ncol(Rdata1)){
  g[[i]] <- ggplot(Rdata1, aes(x = eval(parse(text = colnames(Rdata1[i]))))) + geom_bar() + xlab(colnames(Rdata1[i]))
  }

# graphの描出
theme_set(theme_gray(base_family = "HiraKakuProN-W3")) 
for (i in 1:20){print(g[[i]])}
```

___
## **4. 自由記載分**
### **4-1. 良かった点**
```{r, echo=TRUE, warning=FALSE, message=FALSE}
library(tidyverse)
comments <- data.frame(Rdata2[,c(1:3,4)])
comments <- filter(comments, !is.na(comments[,4])) # no commentを削除
datatable(comments)
```
- ありがとうございました。

### **4-2. 改善すべき点**
```{r, echo=TRUE, warning=FALSE, message=FALSE}
comments <- data.frame(Rdata2[,c(1:3,5)])
comments <- filter(comments, !is.na(comments[,4])) # no commentを削除
datatable(comments)
```
- ありがとうございました。

### **4-3. 今後期待する点**
```{r, echo=TRUE, warning=FALSE, message=FALSE}
comments <- data.frame(Rdata2[,c(1:3,6)])
comments <- filter(comments, !is.na(comments[,4])) # no commentを削除
datatable(comments)
```
- ありがとうございました。

### **4-4. その他ご意見1**
```{r, echo=TRUE, warning=FALSE, message=FALSE}
comments <- data.frame(Rdata2[,c(1:3,7)])
comments <- filter(comments, !is.na(comments[,4])) # no commentを削除
datatable(comments)
```
- ありがとうございました。

### **4-5. 画質QCについて**
```{r, echo=TRUE, warning=FALSE, message=FALSE}
comments <- data.frame(Rdata2[,c(1:3,8)])
comments <- filter(comments, !is.na(comments[,4])) # no commentを削除
datatable(comments)
```
- ありがとうございました。

### **4-6. IFQCについて**
```{r, echo=TRUE, warning=FALSE, message=FALSE}
comments <- data.frame(Rdata2[,c(1:3,9)])
comments <- filter(comments, !is.na(comments[,4])) # no commentを削除
datatable(comments)
```
- ありがとうございました。

### **4-7. その他ご意見2**
```{r, echo=TRUE, warning=FALSE, message=FALSE}
comments <- data.frame(Rdata2[,c(1:3,10)])
comments <- filter(comments, !is.na(comments[,4])) # no commentを削除
datatable(comments)
```
- ありがとうございました。

## **5. Stats**
### **5-1. MRI解析経験による2群比較**
```{r, echo=TRUE, warning=FALSE, message=FALSE}
summary(Rdata1[,3])

# というわけで、3年を区切りにしてみます
library(tidyverse)
cat.Rdata1 <- ifelse(as.numeric(Rdata1[,3]) <= 3, "Shorter", "Longer")
Rdata1.tableone <- data.frame(Rdata1, cat.Rdata1)
Rdata1.tableone[Rdata1.tableone=="不参加"] <- NA
library(tableone)
vars <- colnames(Rdata1.tableone[c(1,2,4:20)])
factorVars <- colnames(Rdata1.tableone[c(1:2)])
table1 <- CreateTableOne(vars = vars, strata = "cat.Rdata1", 
                         data = Rdata1.tableone, factorVars = factorVars)
table1
```
- Note. 不参加＝NAのため0名と表示されている。

### **5-2. MRI解析経験を連続変数とした比較**
```{r, echo=TRUE, warning=FALSE, message=FALSE}
Rdata1.tableone2 <- Rdata1[,1:3]
for (i in 4:20) Rdata1.tableone2 <- data.frame(Rdata1.tableone2, as.numeric(Rdata1[,i]))
Rdata1.tableone2 <- data.frame(Rdata1.tableone2, cat.Rdata1)
colnames(Rdata1.tableone2) <- c(colnames(Rdata1[c(1:20)]), "cat.Rdata1")
vars <- colnames(Rdata1.tableone2[c(1,2,4:20)])
factorVars <- colnames(Rdata1.tableone2[c(1:2)])
Rdata1.tableone2[Rdata1.tableone2==6] <- NA
table2 <- CreateTableOne(vars = vars, strata = "cat.Rdata1", 
                         data = Rdata1.tableone2, factorVars = factorVars)
table2
```
- Note. 各項目の不参加は除外

## もしこのRmarkdownについて改善点がありましたら、フィードバックください。
## そのまま掲載させていただきたいと思います。
