- 已编辑
Data
ID <- 1:20
conc <- round(rnorm(20, 100, 20), 1)
gene <- c("GA", "AT", "AT", "GA", "GA", "AT", "TT", "TT", "GA", "GG", "GA", "AT", "GT", "TT", "GT", "GA", "GT", "AT", "GT", "GG")
dt <- data.frame(ID, conc, gene)
dt[,3] = lapply(dt[,3],function(x) factor(x, levels=c("GA", "AT", "TT", "GG", "GT"))) # 运行到这里会出错
加上这一步骤的原因是, 尽管某个level缺失也要在x轴上标记出来,以防程序自动省略掉, 就是让数据循环中的每一个图保持这五个level。
错误提示
Warning message:
In [<-.data.frame
(*tmp*
, , 3, value = list(1L, 2L, 2L, 1L, 1L, :
provided 20 variables to replace 1 variables
绘图
boxplot(conc~as.factor(gene), data=dt, xaxt="n")
beeswarm(conc~as.factor(gene), data=dt, col="deeppink")
axis
axis(1, at=1:5, labels=c(paste0("GA","\n n=",length(dt[,2]=="GA")),
paste0("AT","\n n=",length(dt[,2]=="AT")),
paste0("TT","\n n=",length(dt[,2]=="TT")),
paste0("GG","\n n=",length(dt[,2]=="GG")),
paste0("GT","\n n=",length(dt[,2]=="GT"))))
请指教!