国際脳MRIチュートリアルRmarkdownプログラム(2020年度)

小池進介|東京大学 2020/11/04

1. データの確認

1-1. CSVデータを取り込む

cols <- c("character",rep("factor", 23),rep("character", 4))
Rdata1 <- read.csv("第2回国際脳MRI・臨床データ解析チュートリアル アンケート.csv",
                  header = T, fileEncoding = "utf-8", colClasses = cols)

1-2. CSVデータの確認

library(DT) #DTパッケージを読み込む
datatable(Rdata1)
  • 最初の一行はテスト回答、最初の一列はタイムスタンプなので、削除します
  • 列名がみずらいので編集します。

1-3. CSVデータの編集&再確認

Rdata.colnames <- c("Title",
                    "Field",
                    "MRIanalysisYear",
                    "Difficulty_SRPB",
                    "Difficulty_TS",
                    "Difficulty_ComBat",
                    "Difficulty_BMBprotocol",
                    "Difficulty_BMBpipeline",
                    "Difficulty_BMBTS",
                    "Satisfuction_SRPB",
                    "Satisfuction_TS",
                    "Satisfuction_ComBat",
                    "Satisfuction_BMBprotocol",
                    "Satisfuction_BMBpipeline",
                    "Satisfuction_BMBTS",
                    "Length_SRPB",
                    "Length_TS",
                    "Length_ComBat",
                    "Length_BMBprotocol",
                    "Length_BMBpipeline",
                    "Length_BMBTS",
                    "web_satisfuction",
                    "Useful",
                    "GoogPoint",
                    "Improvement",
                    "Future",
                    "Opinion")
Rdata <- Rdata1[2:nrow(Rdata1), 2:ncol(Rdata1)]
colnames(Rdata) <- Rdata.colnames
datatable(Rdata)

2. 欠損値の確認

2-1. miceパッケージ

library(mice) #miceパッケージを読み込む
md.pattern(Rdata)
##  /\     /\
## {  `---'  }
## {  O   O  }
## ==>  V <==  No need for mice. This data set is completely observed.
##  \  \|/  /
##   `-----'

##    Title Field MRIanalysisYear Difficulty_SRPB Difficulty_TS
## 66     1     1               1               1             1
##        0     0               0               0             0
##    Difficulty_ComBat Difficulty_BMBprotocol Difficulty_BMBpipeline
## 66                 1                      1                      1
##                    0                      0                      0
##    Difficulty_BMBTS Satisfuction_SRPB Satisfuction_TS Satisfuction_ComBat
## 66                1                 1               1                   1
##                   0                 0               0                   0
##    Satisfuction_BMBprotocol Satisfuction_BMBpipeline Satisfuction_BMBTS
## 66                        1                        1                  1
##                           0                        0                  0
##    Length_SRPB Length_TS Length_ComBat Length_BMBprotocol
## 66           1         1             1                  1
##              0         0             0                  0
##    Length_BMBpipeline Length_BMBTS web_satisfuction Useful GoogPoint
## 66                  1            1                1      1         1
##                     0            0                0      0         0
##    Improvement Future Opinion  
## 66           1      1       1 0
##              0      0       0 0
  • 欠損値がないとかわいいエラーメッセージが記録されるようです。

3. Distribution

3-1. summary()

summary(Rdata)
##                 Title           Field      MRIanalysisYear
##  医療職            :10   精神医学  :18   1~3年  :15    
##  教員・研究職      :28   神経科学  :17   10年以上:10    
##  研究員            :12   その他医学:10   1年未満  : 7    
##  大学院学生        :15   放射線医学: 9   3~5年  :14    
##  民間企業の研究所員: 1   神経内科学: 6   5年以上  :16    
##                          IT        : 1   ほぼ未経験: 4    
##                          (Other)   : 5                    
##      Difficulty_SRPB      Difficulty_TS    Difficulty_ComBat
##  ちょうどよい:45     ちょうどよい:32    ちょうどよい:36     
##  やさしい    : 2     やさしい    : 1    やさしい    : 1     
##  やさしすぎる: 1     やさしすぎる: 1    やさしすぎる: 1     
##  難しい      :16     難しい      :29    難しい      :24     
##  難しすぎる  : 2     難しすぎる  : 3    難しすぎる  : 2     
##                                         不参加      : 2     
##                                                             
##   Difficulty_BMBprotocol  Difficulty_BMBpipeline     Difficulty_BMBTS
##  ちょうどよい:53         ちょうどよい:46         ちょうどよい:52     
##  難しい      :10         やさしい    : 1         やさしい    : 1     
##  難しすぎる  : 1         難しい      :17         難しい      :10     
##  不参加      : 2         難しすぎる  : 1         難しすぎる  : 2     
##                          不参加      : 1         不参加      : 1     
##                                                                      
##                                                                      
##       Satisfuction_SRPB       Satisfuction_TS     Satisfuction_ComBat
##  どちらでもない: 9      どちらでもない:14     どちらでもない:13      
##  やや不満足    : 3      やや不満足    : 4     やや不満足    : 4      
##  やや満足      :31      やや満足      :24     やや満足      :24      
##  満足          :23      不満足        : 1     不参加        : 2      
##                         満足          :23     不満足        : 1      
##                                               満足          :22      
##                                                                      
##    Satisfuction_BMBprotocol   Satisfuction_BMBpipeline
##  どちらでもない: 7          どちらでもない:12         
##  やや満足      :27          やや満足      :22         
##  不参加        : 2          不参加        : 1         
##  満足          :30          満足          :31         
##                                                       
##                                                       
##                                                       
##       Satisfuction_BMBTS       Length_SRPB        Length_TS 
##  どちらでもない: 9       ちょうどよい:51   ちょうどよい:46  
##  やや不満足    : 1       短い        :14   短い        :18  
##  やや満足      :32       長い        : 1   短すぎる    : 2  
##  不参加        : 1                                          
##  満足          :23                                          
##                                                             
##                                                             
##       Length_ComBat    Length_BMBprotocol    Length_BMBpipeline
##  ちょうどよい:48    ちょうどよい:51       ちょうどよい:42      
##  短い        :14    短い        : 5       短い        :19      
##  短すぎる    : 1    長い        : 8       短すぎる    : 1      
##  長い        : 1    不参加      : 2       長い        : 3      
##  不参加      : 2                          不参加      : 1      
##                                                                
##                                                                
##        Length_BMBTS           web_satisfuction            Useful  
##  ちょうどよい:59                      : 1      どちらでもない: 5  
##  短い        : 3    あまり良くなかった: 1      とても役立つ  :32  
##  長い        : 3    どちらでもない    : 4      役立つ        :29  
##  不参加      : 1    大変良かった      :31                         
##                     良かった          :29                         
##                                                                   
##                                                                   
##   GoogPoint         Improvement           Future         
##  Length:66          Length:66          Length:66         
##  Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character  
##                                                          
##                                                          
##                                                          
##                                                          
##    Opinion         
##  Length:66         
##  Class :character  
##  Mode  :character  
##                    
##                    
##                    
## 
  • みづらいので並び替えたほうが良さそうです

3-2. reorder and summary()

Rdata.temp <- data.frame(
  factor(Rdata[,1],  levels = c("学部学生", "大学院学生", "研究員", "教員・研究職", "医療職")),
  factor(Rdata[,2],  levels = c("神経科学", "精神医学", "神経内科学", "放射線医学")),
  factor(Rdata[,3],  levels = c("ほぼ未経験", "1年未満", "1~3年", "3~5年", "5年以上", "10年以上")),
  factor(Rdata[,4],  levels = c("やさしすぎる", "やさしい", "ちょうどよい", "難しい", "難しすぎる", "不参加")), 
  factor(Rdata[,5],  levels = c("やさしすぎる", "やさしい", "ちょうどよい", "難しい", "難しすぎる", "不参加")),  
  factor(Rdata[,6],  levels = c("やさしすぎる", "やさしい", "ちょうどよい", "難しい", "難しすぎる", "不参加")),  
  factor(Rdata[,7],  levels = c("やさしすぎる", "やさしい", "ちょうどよい", "難しい", "難しすぎる", "不参加")),  
  factor(Rdata[,8],  levels = c("やさしすぎる", "やさしい", "ちょうどよい", "難しい", "難しすぎる", "不参加")),  
  factor(Rdata[,9],  levels = c("やさしすぎる", "やさしい", "ちょうどよい", "難しい", "難しすぎる", "不参加")),  
  factor(Rdata[,10], levels = c("満足", "やや満足", "どちらでもない", "やや不満足", "不満足", "不参加")),  
  factor(Rdata[,11], levels = c("満足", "やや満足", "どちらでもない", "やや不満足", "不満足", "不参加")),  
  factor(Rdata[,12], levels = c("満足", "やや満足", "どちらでもない", "やや不満足", "不満足", "不参加")),  
  factor(Rdata[,13], levels = c("満足", "やや満足", "どちらでもない", "やや不満足", "不満足", "不参加")),  
  factor(Rdata[,14], levels = c("満足", "やや満足", "どちらでもない", "やや不満足", "不満足", "不参加")),  
  factor(Rdata[,15], levels = c("満足", "やや満足", "どちらでもない", "やや不満足", "不満足", "不参加")),  
  factor(Rdata[,16], levels = c("長すぎる", "長い", "ちょうどよい", "短い", "短すぎる", "不参加")), 
  factor(Rdata[,17], levels = c("長すぎる", "長い", "ちょうどよい", "短い", "短すぎる", "不参加")), 
  factor(Rdata[,18], levels = c("長すぎる", "長い", "ちょうどよい", "短い", "短すぎる", "不参加")), 
  factor(Rdata[,19], levels = c("長すぎる", "長い", "ちょうどよい", "短い", "短すぎる", "不参加")),  
  factor(Rdata[,20], levels = c("長すぎる", "長い", "ちょうどよい", "短い", "短すぎる", "不参加")),  
  factor(Rdata[,21], levels = c("長すぎる", "長い", "ちょうどよい", "短い", "短すぎる", "不参加")),  
  factor(Rdata[,22], levels = c("大変良かった", "良かった", "どちらでもない", "あまりよくなかった", "良くなかった")),  
  factor(Rdata[,23], levels = c("とても役立つ", "役立つ", "どちらでもない", "役立たない", "全く役立たない")),  
  Rdata[,24:27]
)
colnames(Rdata.temp) <- Rdata.colnames
summary(Rdata.temp)
##           Title           Field      MRIanalysisYear     Difficulty_SRPB
##  学部学生    : 0   神経科学  :17   ほぼ未経験: 4     やさしすぎる: 1    
##  大学院学生  :15   精神医学  :18   1年未満  : 7     やさしい    : 2    
##  研究員      :12   神経内科学: 6   1~3年  :15     ちょうどよい:45    
##  教員・研究職:28   放射線医学: 9   3~5年  :14     難しい      :16    
##  医療職      :10   NA's      :16   5年以上  :16     難しすぎる  : 2    
##  NA's        : 1                   10年以上:10     不参加      : 0    
##       Difficulty_TS    Difficulty_ComBat  Difficulty_BMBprotocol
##  やさしすぎる: 1    やさしすぎる: 1      やさしすぎる: 0        
##  やさしい    : 1    やさしい    : 1      やさしい    : 0        
##  ちょうどよい:32    ちょうどよい:36      ちょうどよい:53        
##  難しい      :29    難しい      :24      難しい      :10        
##  難しすぎる  : 3    難しすぎる  : 2      難しすぎる  : 1        
##  不参加      : 0    不参加      : 2      不参加      : 2        
##   Difficulty_BMBpipeline     Difficulty_BMBTS      Satisfuction_SRPB
##  やさしすぎる: 0         やさしすぎる: 0      満足          :23     
##  やさしい    : 1         やさしい    : 1      やや満足      :31     
##  ちょうどよい:46         ちょうどよい:52      どちらでもない: 9     
##  難しい      :17         難しい      :10      やや不満足    : 3     
##  難しすぎる  : 1         難しすぎる  : 2      不満足        : 0     
##  不参加      : 1         不参加      : 1      不参加        : 0     
##        Satisfuction_TS     Satisfuction_ComBat   Satisfuction_BMBprotocol
##  満足          :23     満足          :22       満足          :30         
##  やや満足      :24     やや満足      :24       やや満足      :27         
##  どちらでもない:14     どちらでもない:13       どちらでもない: 7         
##  やや不満足    : 4     やや不満足    : 4       やや不満足    : 0         
##  不満足        : 1     不満足        : 1       不満足        : 0         
##  不参加        : 0     不参加        : 2       不参加        : 2         
##    Satisfuction_BMBpipeline      Satisfuction_BMBTS       Length_SRPB
##  満足          :31          満足          :23       長すぎる    : 0  
##  やや満足      :22          やや満足      :32       長い        : 1  
##  どちらでもない:12          どちらでもない: 9       ちょうどよい:51  
##  やや不満足    : 0          やや不満足    : 1       短い        :14  
##  不満足        : 0          不満足        : 0       短すぎる    : 0  
##  不参加        : 1          不参加        : 1       不参加      : 0  
##         Length_TS       Length_ComBat    Length_BMBprotocol
##  長すぎる    : 0   長すぎる    : 0    長すぎる    : 0      
##  長い        : 0   長い        : 1    長い        : 8      
##  ちょうどよい:46   ちょうどよい:48    ちょうどよい:51      
##  短い        :18   短い        :14    短い        : 5      
##  短すぎる    : 2   短すぎる    : 1    短すぎる    : 0      
##  不参加      : 0   不参加      : 2    不参加      : 2      
##     Length_BMBpipeline       Length_BMBTS           web_satisfuction
##  長すぎる    : 0       長すぎる    : 0    大変良かった      :31     
##  長い        : 3       長い        : 3    良かった          :29     
##  ちょうどよい:42       ちょうどよい:59    どちらでもない    : 4     
##  短い        :19       短い        : 3    あまりよくなかった: 0     
##  短すぎる    : 1       短すぎる    : 0    良くなかった      : 0     
##  不参加      : 1       不参加      : 1    NA's              : 2     
##             Useful    GoogPoint         Improvement       
##  とても役立つ  :32   Length:66          Length:66         
##  役立つ        :29   Class :character   Class :character  
##  どちらでもない: 5   Mode  :character   Mode  :character  
##  役立たない    : 0                                        
##  全く役立たない: 0                                        
##                                                           
##     Future            Opinion         
##  Length:66          Length:66         
##  Class :character   Class :character  
##  Mode  :character   Mode  :character  
##                                       
##                                       
## 
Rdata <- Rdata.temp

http://highschoolstudent.hatenablog.com/entry/2013/12/15/154341

3-3. summarytoolsパッケージ

# library(summarytools) #summarytoolsパッケージを読み込む
#print(dfSummary(Rdata[,1:31], graph.magnif=0.50), method = 'render')

なぜかこれをうごかすとこの先が表示されなくなるので、とりあえずコメントアウトにしています。 誰か解決策教えて下さい。

  • こちらのほうがみやすいですが、いい感じに文字化けしています。 https://niszet.hatenablog.com/entry/2018/07/23/073000

  • おそらくFactorの表記を変えるしかなさそうです。 例えば、 factor(Rdata[,1], labels = c("Univ Student", "Graduate Student", "Post-doc", "Research Staff", "Medical Staff")) とか

http://m-hiyama.hatenablog.com/entry/20151215/1450140312

3-4. geom_bar()

library(ggplot2)
g <- list()
for(i in 1:(ncol(Rdata)-4)){
  g[[i]] <- ggplot(Rdata, aes(x = eval(parse(text = Rdata.colnames[i])))) +  # aes(x = Title) と、""でくくってはいけないため
    geom_bar() +
    xlab(Rdata.colnames[i])
}

# graphの描出
for (i in 1:23) print(g[[i]])

##### Rmarkdownではちいさくてうまくいかなかったので、やめました
# library(gridExtra)
# g.list <- NULL
# for (i in 1:31) g.list <- c(g.list, paste("g[[",i,"]]",sep=""))
# g.list.chr <- as.character("")
# for (i in 1:31) g.list.chr <- paste(g.list.chr, g.list[i], sep = ",")
# library(stringr)
# g.list.chr <- str_sub(g.list.chr, start = 2)
# eval(parse(text = paste("grid.arrange(",g.list.chr,", ncol = 2)",sep = "")))

https://qiita.com/nozma/items/cd98ec7938e0783d5d89 https://rstudio.com/wp-content/uploads/2015/03/ggplot2-cheatsheet.pdf


4. 自由記載分

4-1. 良かった点

comments <- data.frame(Rdata[,1:3],Rdata[,24])
colnames(comments)[4] <- Rdata.colnames[24]
comments <- comments[comments[,4]!="",]  # no commentを削除
datatable(comments)

- ありがとうございました。

4-2. 改善すべき点

comments <- data.frame(Rdata[,1:3],Rdata[,25])
colnames(comments)[4] <- Rdata.colnames[25]
comments <- comments[comments[,4]!="",]  # no commentを削除
datatable(comments)

- ありがとうございました。

4-3. 今後期待する点

comments <- data.frame(Rdata[,1:3],Rdata[,26])
colnames(comments)[4] <- Rdata.colnames[26]
comments <- comments[comments[,4]!="",]  # no commentを削除
datatable(comments)

- ありがとうございました。

4-4. その他ご意見

comments <- data.frame(Rdata[,1:3],Rdata[,27])
colnames(comments)[4] <- Rdata.colnames[27]
comments <- comments[comments[,4]!="",]  # no commentを削除
datatable(comments)

- ありがとうございました。


5. Stats

5-1. tableone()

せっかくなので、MRI解析経験を2群にわけてtableoneで統計かけてみました。

summary(Rdata[,3])
## ほぼ未経験   1年未満   1~3年   3~5年   5年以上 10年以上 
##          4          7         15         14         16         10
# というわけで、3年を区切りにしてみます
cat.Rdata <- ifelse(as.numeric(Rdata[,3]) <= 3, "Shorter", "Longer")
Rdata.tableone <- data.frame(Rdata, cat.Rdata)
library(tableone)
vars <- Rdata.colnames[c(1:2,4:23)]
factorVars <- Rdata.colnames[1:2]
table1 <- CreateTableOne(vars = vars, strata = "cat.Rdata", 
                         data = Rdata.tableone, factorVars = factorVars)
table1
##                               Stratified by cat.Rdata
##                                Longer     Shorter    p      test
##   n                            40         26                    
##   Title (%)                                          <0.001     
##      大学院学生                 3 ( 7.5)  12 (48.0)             
##      研究員                     7 (17.5)   5 (20.0)             
##      教員・研究職              25 (62.5)   3 (12.0)             
##      医療職                     5 (12.5)   5 (20.0)             
##   Field (%)                                           0.863     
##      神経科学                  11 (35.5)   6 (31.6)             
##      精神医学                  12 (38.7)   6 (31.6)             
##      神経内科学                 3 ( 9.7)   3 (15.8)             
##      放射線医学                 5 (16.1)   4 (21.1)             
##   Difficulty_SRPB (%)                                 NaN       
##      やさしすぎる               1 ( 2.5)   0 ( 0.0)             
##      やさしい                   2 ( 5.0)   0 ( 0.0)             
##      ちょうどよい              28 (70.0)  17 (65.4)             
##      難しい                     8 (20.0)   8 (30.8)             
##      難しすぎる                 1 ( 2.5)   1 ( 3.8)             
##      不参加                     0 ( 0.0)   0 ( 0.0)             
##   Difficulty_TS (%)                                   NaN       
##      やさしすぎる               1 ( 2.5)   0 ( 0.0)             
##      やさしい                   0 ( 0.0)   1 ( 3.8)             
##      ちょうどよい              21 (52.5)  11 (42.3)             
##      難しい                    17 (42.5)  12 (46.2)             
##      難しすぎる                 1 ( 2.5)   2 ( 7.7)             
##      不参加                     0 ( 0.0)   0 ( 0.0)             
##   Difficulty_ComBat (%)                               0.647     
##      やさしすぎる               1 ( 2.5)   0 ( 0.0)             
##      やさしい                   0 ( 0.0)   1 ( 3.8)             
##      ちょうどよい              24 (60.0)  12 (46.2)             
##      難しい                    13 (32.5)  11 (42.3)             
##      難しすぎる                 1 ( 2.5)   1 ( 3.8)             
##      不参加                     1 ( 2.5)   1 ( 3.8)             
##   Difficulty_BMBprotocol (%)                          NaN       
##      やさしすぎる               0 ( 0.0)   0 ( 0.0)             
##      やさしい                   0 ( 0.0)   0 ( 0.0)             
##      ちょうどよい              33 (82.5)  20 (76.9)             
##      難しい                     5 (12.5)   5 (19.2)             
##      難しすぎる                 1 ( 2.5)   0 ( 0.0)             
##      不参加                     1 ( 2.5)   1 ( 3.8)             
##   Difficulty_BMBpipeline (%)                          NaN       
##      やさしすぎる               0 ( 0.0)   0 ( 0.0)             
##      やさしい                   1 ( 2.5)   0 ( 0.0)             
##      ちょうどよい              29 (72.5)  17 (65.4)             
##      難しい                     8 (20.0)   9 (34.6)             
##      難しすぎる                 1 ( 2.5)   0 ( 0.0)             
##      不参加                     1 ( 2.5)   0 ( 0.0)             
##   Difficulty_BMBTS (%)                                NaN       
##      やさしすぎる               0 ( 0.0)   0 ( 0.0)             
##      やさしい                   1 ( 2.5)   0 ( 0.0)             
##      ちょうどよい              30 (75.0)  22 (84.6)             
##      難しい                     7 (17.5)   3 (11.5)             
##      難しすぎる                 1 ( 2.5)   1 ( 3.8)             
##      不参加                     1 ( 2.5)   0 ( 0.0)             
##   Satisfuction_SRPB (%)                               NaN       
##      満足                      17 (42.5)   6 (23.1)             
##      やや満足                  19 (47.5)  12 (46.2)             
##      どちらでもない             3 ( 7.5)   6 (23.1)             
##      やや不満足                 1 ( 2.5)   2 ( 7.7)             
##      不満足                     0 ( 0.0)   0 ( 0.0)             
##      不参加                     0 ( 0.0)   0 ( 0.0)             
##   Satisfuction_TS (%)                                 NaN       
##      満足                      16 (40.0)   7 (26.9)             
##      やや満足                  15 (37.5)   9 (34.6)             
##      どちらでもない             6 (15.0)   8 (30.8)             
##      やや不満足                 2 ( 5.0)   2 ( 7.7)             
##      不満足                     1 ( 2.5)   0 ( 0.0)             
##      不参加                     0 ( 0.0)   0 ( 0.0)             
##   Satisfuction_ComBat (%)                             0.370     
##      満足                      16 (40.0)   6 (23.1)             
##      やや満足                  15 (37.5)   9 (34.6)             
##      どちらでもない             6 (15.0)   7 (26.9)             
##      やや不満足                 1 ( 2.5)   3 (11.5)             
##      不満足                     1 ( 2.5)   0 ( 0.0)             
##      不参加                     1 ( 2.5)   1 ( 3.8)             
##   Satisfuction_BMBprotocol (%)                        NaN       
##      満足                      21 (52.5)   9 (34.6)             
##      やや満足                  17 (42.5)  10 (38.5)             
##      どちらでもない             1 ( 2.5)   6 (23.1)             
##      やや不満足                 0 ( 0.0)   0 ( 0.0)             
##      不満足                     0 ( 0.0)   0 ( 0.0)             
##      不参加                     1 ( 2.5)   1 ( 3.8)             
##   Satisfuction_BMBpipeline (%)                        NaN       
##      満足                      20 (50.0)  11 (42.3)             
##      やや満足                  14 (35.0)   8 (30.8)             
##      どちらでもない             5 (12.5)   7 (26.9)             
##      やや不満足                 0 ( 0.0)   0 ( 0.0)             
##      不満足                     0 ( 0.0)   0 ( 0.0)             
##      不参加                     1 ( 2.5)   0 ( 0.0)             
##   Satisfuction_BMBTS (%)                              NaN       
##      満足                      15 (37.5)   8 (30.8)             
##      やや満足                  20 (50.0)  12 (46.2)             
##      どちらでもない             3 ( 7.5)   6 (23.1)             
##      やや不満足                 1 ( 2.5)   0 ( 0.0)             
##      不満足                     0 ( 0.0)   0 ( 0.0)             
##      不参加                     1 ( 2.5)   0 ( 0.0)             
##   Length_SRPB (%)                                     NaN       
##      長すぎる                   0 ( 0.0)   0 ( 0.0)             
##      長い                       1 ( 2.5)   0 ( 0.0)             
##      ちょうどよい              30 (75.0)  21 (80.8)             
##      短い                       9 (22.5)   5 (19.2)             
##      短すぎる                   0 ( 0.0)   0 ( 0.0)             
##      不参加                     0 ( 0.0)   0 ( 0.0)             
##   Length_TS (%)                                       NaN       
##      長すぎる                   0 ( 0.0)   0 ( 0.0)             
##      長い                       0 ( 0.0)   0 ( 0.0)             
##      ちょうどよい              28 (70.0)  18 (69.2)             
##      短い                      11 (27.5)   7 (26.9)             
##      短すぎる                   1 ( 2.5)   1 ( 3.8)             
##      不参加                     0 ( 0.0)   0 ( 0.0)             
##   Length_ComBat (%)                                   NaN       
##      長すぎる                   0 ( 0.0)   0 ( 0.0)             
##      長い                       1 ( 2.5)   0 ( 0.0)             
##      ちょうどよい              29 (72.5)  19 (73.1)             
##      短い                       9 (22.5)   5 (19.2)             
##      短すぎる                   0 ( 0.0)   1 ( 3.8)             
##      不参加                     1 ( 2.5)   1 ( 3.8)             
##   Length_BMBprotocol (%)                              NaN       
##      長すぎる                   0 ( 0.0)   0 ( 0.0)             
##      長い                       6 (15.0)   2 ( 7.7)             
##      ちょうどよい              31 (77.5)  20 (76.9)             
##      短い                       2 ( 5.0)   3 (11.5)             
##      短すぎる                   0 ( 0.0)   0 ( 0.0)             
##      不参加                     1 ( 2.5)   1 ( 3.8)             
##   Length_BMBpipeline (%)                              NaN       
##      長すぎる                   0 ( 0.0)   0 ( 0.0)             
##      長い                       1 ( 2.5)   2 ( 7.7)             
##      ちょうどよい              25 (62.5)  17 (65.4)             
##      短い                      13 (32.5)   6 (23.1)             
##      短すぎる                   0 ( 0.0)   1 ( 3.8)             
##      不参加                     1 ( 2.5)   0 ( 0.0)             
##   Length_BMBTS (%)                                    NaN       
##      長すぎる                   0 ( 0.0)   0 ( 0.0)             
##      長い                       1 ( 2.5)   2 ( 7.7)             
##      ちょうどよい              37 (92.5)  22 (84.6)             
##      短い                       1 ( 2.5)   2 ( 7.7)             
##      短すぎる                   0 ( 0.0)   0 ( 0.0)             
##      不参加                     1 ( 2.5)   0 ( 0.0)             
##   web_satisfuction (%)                                NaN       
##      大変良かった              21 (53.8)  10 (40.0)             
##      良かった                  18 (46.2)  11 (44.0)             
##      どちらでもない             0 ( 0.0)   4 (16.0)             
##      あまりよくなかった         0 ( 0.0)   0 ( 0.0)             
##      良くなかった               0 ( 0.0)   0 ( 0.0)             
##   Useful (%)                                          NaN       
##      とても役立つ              21 (52.5)  11 (42.3)             
##      役立つ                    17 (42.5)  12 (46.2)             
##      どちらでもない             2 ( 5.0)   3 (11.5)             
##      役立たない                 0 ( 0.0)   0 ( 0.0)             
##      全く役立たない             0 ( 0.0)   0 ( 0.0)
  • あまり差はなさそうです。とりあえず連続変数としてt検定もしてみます。
  • 不参加を抜かないといけません。

5-2. tableone() 連続変数で

Rdata.tableone[Rdata.tableone=="不参加"] <- NA
Rdata.tableone2 <- Rdata[,1:3]
for (i in 4:23) Rdata.tableone2 <- data.frame(Rdata.tableone2, as.numeric(Rdata[,i]))
Rdata.tableone2 <- data.frame(Rdata.tableone2, cat.Rdata)
colnames(Rdata.tableone2) <- c(Rdata.colnames[1:23], "cat.Rdata")
vars <- Rdata.colnames[c(1:2,4:23)]
factorVars <- Rdata.colnames[1:2]
table2 <- CreateTableOne(vars = vars, strata = "cat.Rdata", 
                         data = Rdata.tableone2, factorVars = factorVars)
table2
##                                       Stratified by cat.Rdata
##                                        Longer       Shorter      p     
##   n                                      40           26               
##   Title (%)                                                      <0.001
##      大学院学生                           3 ( 7.5)    12 (48.0)        
##      研究員                               7 (17.5)     5 (20.0)        
##      教員・研究職                        25 (62.5)     3 (12.0)        
##      医療職                               5 (12.5)     5 (20.0)        
##   Field (%)                                                       0.863
##      神経科学                            11 (35.5)     6 (31.6)        
##      精神医学                            12 (38.7)     6 (31.6)        
##      神経内科学                           3 ( 9.7)     3 (15.8)        
##      放射線医学                           5 (16.1)     4 (21.1)        
##   Difficulty_SRPB (mean (SD))          3.15 (0.66)  3.38 (0.57)   0.143
##   Difficulty_TS (mean (SD))            3.42 (0.68)  3.58 (0.70)   0.383
##   Difficulty_ComBat (mean (SD))        3.40 (0.78)  3.58 (0.81)   0.377
##   Difficulty_BMBprotocol (mean (SD))   3.25 (0.63)  3.31 (0.68)   0.726
##   Difficulty_BMBpipeline (mean (SD))   3.30 (0.69)  3.35 (0.49)   0.767
##   Difficulty_BMBTS (mean (SD))         3.27 (0.68)  3.19 (0.49)   0.594
##   Satisfuction_SRPB (mean (SD))        1.70 (0.72)  2.15 (0.88)   0.026
##   Satisfuction_TS (mean (SD))          1.92 (1.00)  2.19 (0.94)   0.280
##   Satisfuction_ComBat (mean (SD))      1.98 (1.14)  2.42 (1.21)   0.133
##   Satisfuction_BMBprotocol (mean (SD)) 1.60 (0.90)  2.04 (1.11)   0.083
##   Satisfuction_BMBpipeline (mean (SD)) 1.73 (0.99)  1.85 (0.83)   0.607
##   Satisfuction_BMBTS (mean (SD))       1.85 (0.98)  1.92 (0.74)   0.746
##   Length_SRPB (mean (SD))              3.20 (0.46)  3.19 (0.40)   0.945
##   Length_TS (mean (SD))                3.33 (0.53)  3.35 (0.56)   0.877
##   Length_ComBat (mean (SD))            3.27 (0.64)  3.38 (0.75)   0.528
##   Length_BMBprotocol (mean (SD))       2.98 (0.66)  3.15 (0.73)   0.307
##   Length_BMBpipeline (mean (SD))       3.38 (0.67)  3.23 (0.65)   0.390
##   Length_BMBTS (mean (SD))             3.08 (0.53)  3.00 (0.40)   0.538
##   web_satisfuction (mean (SD))         1.46 (0.51)  1.76 (0.72)   0.056
##   Useful (mean (SD))                   1.52 (0.60)  1.69 (0.68)   0.297
##                                       Stratified by cat.Rdata
##                                        test
##   n                                        
##   Title (%)                                
##      大学院学生                            
##      研究員                                
##      教員・研究職                          
##      医療職                                
##   Field (%)                                
##      神経科学                              
##      精神医学                              
##      神経内科学                            
##      放射線医学                            
##   Difficulty_SRPB (mean (SD))              
##   Difficulty_TS (mean (SD))                
##   Difficulty_ComBat (mean (SD))            
##   Difficulty_BMBprotocol (mean (SD))       
##   Difficulty_BMBpipeline (mean (SD))       
##   Difficulty_BMBTS (mean (SD))             
##   Satisfuction_SRPB (mean (SD))            
##   Satisfuction_TS (mean (SD))              
##   Satisfuction_ComBat (mean (SD))          
##   Satisfuction_BMBprotocol (mean (SD))     
##   Satisfuction_BMBpipeline (mean (SD))     
##   Satisfuction_BMBTS (mean (SD))           
##   Length_SRPB (mean (SD))                  
##   Length_TS (mean (SD))                    
##   Length_ComBat (mean (SD))                
##   Length_BMBprotocol (mean (SD))           
##   Length_BMBpipeline (mean (SD))           
##   Length_BMBTS (mean (SD))                 
##   web_satisfuction (mean (SD))             
##   Useful (mean (SD))
  • 数が小さいと「やさしすぎる」「満足」「短すぎる」「役立つ」です。
  • この結果だと、MRI経験年数が短いとSRPBに関して満足度が低いということになります(が有意かどうかの判断はお任せします。)

もしこのRmarkdownについて改善点がありましたら、フィードバックください。

そのまま掲載させていただきたいと思います。