我想要的是成对比较,例如成对的 Wilcox 检验。与组:list(c("0.5", "1"),c("1","2"),c("2","3"))
。起初非常简单,没有 alpha 校正等等。
代码:
data_summary <- function(data, varname, groupnames){
require(plyr)
summary_func <- function(x, col){
c(mean = mean(x[[col]], na.rm=TRUE),
sd = sd(x[[col]], na.rm=TRUE))
}
data_sum<-ddply(data, groupnames, .fun=summary_func,
varname)
data_sum <- rename(data_sum, c("mean" = varname))
return(data_sum)
}
df_long <- rbind(ToothGrowth[,-2],data.frame(len=40:50,dose=3.0))
df_long$ID <- data.table::rowid(df_long$dose)
df_aggre<- data_summary(df_long, varname="len",
groupnames=c("dose"))
p<-
ggplot(df_aggre, aes(x=dose, y=len)) +
geom_errorbar(aes(ymin=len-sd, ymax=len+sd), width=.1) +
geom_line() + geom_point() + theme_minimal()
期望的输出。(我想要红圈里的东西!)
(发明了统计结果(例如 ns, , *))
我的尝试:
library(ggpubr)
p + stat_compare_means(data=df_long,mapping=aes(x=dose, y=len),label = "p.signif", method= "wilcox.test", comparisons=list(c("0.5","1"),c("1","2"),c("2","3")))
#Error in f(...) :
#Can only handle data with groups that are plotted on the x-axis