memoryy <- read.csv("voc.csv", h = T)
library(tidyverse)
## Warning: 套件 'tidyverse' 是用 R 版本 4.1.3 來建造的
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5     v purrr   0.3.4
## v tibble  3.1.6     v dplyr   1.0.8
## v tidyr   1.2.0     v stringr 1.4.0
## v readr   2.1.2     v forcats 0.5.1
## Warning: 套件 'ggplot2' 是用 R 版本 4.1.3 來建造的
## Warning: 套件 'tibble' 是用 R 版本 4.1.3 來建造的
## Warning: 套件 'tidyr' 是用 R 版本 4.1.3 來建造的
## Warning: 套件 'readr' 是用 R 版本 4.1.3 來建造的
## Warning: 套件 'purrr' 是用 R 版本 4.1.3 來建造的
## Warning: 套件 'dplyr' 是用 R 版本 4.1.3 來建造的
## Warning: 套件 'stringr' 是用 R 版本 4.1.3 來建造的
## Warning: 套件 'forcats' 是用 R 版本 4.1.3 來建造的
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
lmemoryy <- pivot_longer(memoryy, cols = c(, 3:5), names_to = "time", values_to = "n")
head(lmemoryy)
## # A tibble: 6 x 4
##      ID gender time      n
##   <int>  <int> <chr> <int>
## 1     1      2 T1       13
## 2     1      2 T2        9
## 3     1      2 T3       13
## 4     2      2 T1       13
## 5     2      2 T2        8
## 6     2      2 T3       12
str(lmemoryy)
## tibble [63 x 4] (S3: tbl_df/tbl/data.frame)
##  $ ID    : int [1:63] 1 1 1 2 2 2 3 3 3 4 ...
##  $ gender: int [1:63] 2 2 2 2 2 2 2 2 2 2 ...
##  $ time  : chr [1:63] "T1" "T2" "T3" "T1" ...
##  $ n     : int [1:63] 13 9 13 13 8 12 11 7 7 14 ...

#convert char to factor variable

lmemoryy$time <- as.factor(lmemoryy$time)
lmemoryy$ID <- as.factor(lmemoryy$ID)
str(lmemoryy)
## tibble [63 x 4] (S3: tbl_df/tbl/data.frame)
##  $ ID    : Factor w/ 21 levels "1","2","3","4",..: 1 1 1 2 2 2 3 3 3 4 ...
##  $ gender: int [1:63] 2 2 2 2 2 2 2 2 2 2 ...
##  $ time  : Factor w/ 3 levels "T1","T2","T3": 1 2 3 1 2 3 1 2 3 1 ...
##  $ n     : int [1:63] 13 9 13 13 8 12 11 7 7 14 ...

#visualize data

plot(n ~ time, data = lmemoryy, 
frame.plot = FALSE)

#在t1中回答的數量最多

aggregate(n ~ time, data = lmemoryy, mean)
##   time         n
## 1   T1 11.857143
## 2   T2  8.428571
## 3   T3  9.333333
aggregate(n ~ time, data = lmemoryy, sd)
##   time        n
## 1   T1 3.054271
## 2   T2 2.560692
## 3   T3 3.022141

#ANOVA for repeated measures

summary(aov(n ~ time + Error(ID), data = lmemoryy))
## 
## Error: ID
##           Df Sum Sq Mean Sq F value Pr(>F)
## Residuals 20    421   21.05               
## 
## Error: Within
##           Df Sum Sq Mean Sq F value   Pr(>F)    
## time       2  132.6   66.30    33.4 2.95e-09 ***
## Residuals 40   79.4    1.98                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

#p<0.05,表示達顯著差異