こういう図を描く
# 使うパッケージ
library(tidyr)
# 練習データ
data <- matrix(c(1001,"Control",28,1002,"Control",44,1003,"Control",22,
1004,"Control",44,1005,"Control",23,1006,"Control",29,
1007,"Control",44,1008,"Control",40,1009,"Control",32,
1010,"Control",43,1011,"Control",29,1012,"Control",21,
1013,"Control",42,1014,"Control",50,1015,"Control",41,
1016,"Control",19,1017,"Control",39,1018,"Control",24,
1019,"Control",32,1020,"Control",45,1021,"Control",24,
1022,"Control",20,1023,"Control",15,1024,"Control",23,
1025,"Control",18,1026,"Control",20,1027,"Control",22,
1028,"Control",14,1029,"Control",19,1030,"Control",11,
1031,"Control",10,1032,"Control",17,1033,"Control",17,
1034,"Control",30,1035,"Control",10,1036,"Control",20,
1037,"Control",24,1038,"Control",20,1039,"Control",24,
1040,"Control",20,2001,"Experiment",33,2002,"Experiment",20,
2003,"Experiment",22,2004,"Experiment",45,2005,"Experiment",22,
2006,"Experiment",35,2007,"Experiment",23,2008,"Experiment",20,
2009,"Experiment",44,2010,"Experiment",32,2011,"Experiment",24,
2012,"Experiment",45,2013,"Experiment",44,2014,"Experiment",44,
2015,"Experiment",48,2016,"Experiment",47,2017,"Experiment",47,
2018,"Experiment",47,2019,"Experiment",29,2020,"Experiment",28,
2021,"Experiment",27,2022,"Experiment",27,2023,"Experiment",19,
2024,"Experiment",16,2025,"Experiment",14,2026,"Experiment",21,
2027,"Experiment",33,2028,"Experiment",40,2029,"Experiment",36,
2030,"Experiment",19,2031,"Experiment",39,2032,"Experiment",47,
2033,"Experiment",38,2034,"Experiment",35,2035,"Experiment",30,
2036,"Experiment",15,2037,"Experiment",31,2038,"Experiment",34,
2039,"Experiment",47,2040,"Experiment",17),
nrow = 80, ncol = 3, byrow = TRUE)
data.df <- data.frame(data)
colnames(data.df) <- c("id", "cond", "score")
data.df$score <- as.numeric(data.df$score)
DT::datatable(data.df)
# 平均と標準偏差
m <- tapply(data.df$score, list(data.df$cond), mean)
sd <- tapply(data.df$score, list(data.df$cond), sd)
m
## Control Experiment
## 26.725 32.100
sd
## Control Experiment
## 11.01278 10.86703
# グラフ
## エラーバーを書くために横軸の座標をxiでとっている
xi <- barplot(m, ylim = c(0, 55),
ylab = "Score", xlab = "Condition",
names.arg = c("Control", "Experiment"))
arrows(xi, m - sd, xi, m + sd, angle = 90, length = 0.1)
arrows(xi, m + sd, xi, m - sd, angle = 90, length = 0.1)
## 以下の部分はデータに合わせて調整するとよい
maxy = max(m + sd) * 1.0
stepy = max(m + sd) * 0.1
yi <- m + stepy * 3.0
maxyi <- max(yi) + stepy
lines(c(xi[1], xi[1], xi[2], xi[2]),
c(yi[1], maxyi, maxyi, yi[2]))
text((xi[1] + xi[2]) / 2, maxyi + stepy / 4, "*", cex = 1.5)
# 画像として保存する
quartz(type = "png", file = "./Plot/Barplot_Mean.png",
width = 4, height = 6)
par(family = "HiraKakuProN-W3")
## エラーバーを書くために横軸の座標をxiでとっている
xi <- barplot(m, ylim = c(0, 55),
ylab = "Score", xlab = "Condition",
names.arg = c("Control", "Experiment"))
arrows(xi, m - sd, xi, m + sd, angle = 90, length = 0.1)
arrows(xi, m + sd, xi, m - sd, angle = 90, length = 0.1)
## 以下の部分はデータに合わせて調整するとよい
maxy = max(m + sd) * 1.0
stepy = max(m + sd) * 0.1
yi <- m + stepy * 3.0
maxyi <- max(yi) + stepy
lines(c(xi[1], xi[1], xi[2], xi[2]),
c(yi[1], maxyi, maxyi, yi[2]))
text((xi[1] + xi[2]) / 2, maxyi + stepy / 4, "*", cex = 1.5)
dev.off()
## quartz_off_screen
## 2