我想制作以下的箱形图:
示例数据:
> head(df2)
Results Capacity Power LDI LDE LB PDC D 1 2 3 4 5 6 7 8 9
1 ImpactDCNoV2GYesDC 1 PG11 LDI6 LDE0 LB0.045 PDC0 D10 1 NA NA NA NA NA NA NA NA
2 ImpactDCNoV2GYesDC 0.95 PG11 LDI5 LDE0 LB0.045 PDC0.25 D10 2 2 6 7 9 NA NA NA NA
3 ImpactDCNoV2GYesDC 0.9 PG11 LDI1 LDE0 LB0.045 PDC0.50 D10 5 3 NA NA NA NA NA NA NA
4 ImpactDCNoV2GYesDC 0.85 PG11 LDI6 LDE0 LB0.045 PDC0.75 D10 8 6 NA 8 NA NA NA NA NA
5 ImpactDCNoV2GYesDC 0.8 PG11 LDI5 LDE0 LB0.045 PDC0 D10 6 NA NA NA NA NA NA NA NA
6 ImpactDCNoV2GYesDC 0.75 PG22 LDI1 LDE0 LB0.045 PDC0 D10 2 NA NA 1 NA NA NA NA NA
我有一个大型数据集,所以我决定循环几个图,以获得不同的PG值。我也使用facet_wrap来绘制不同PDC值的绘图结果。
作为输出,我想获得第1列到第9列中数据的箱线图,其中箱线图x轴是PDC的不同值。轴是1到9列中给出的值。
我为此准备的代码是:
Box.graph <- function(df2, na.rm = TRUE, ...){
Powerlist <- unique(df2$Power)
for (i in seq_along(Powerlist)){
boxplot <-
ggplot(subset(df2, df2$Power==Powerlist[i]),
aes(x =LDI, y = value, colour = variable), group = df2$Power) +
geom_boxplot() +
theme(axis.text.x = element_text(size=14))+
facet_wrap( ~ PDC, ncol =1)+
theme(legend.position = "none")+
scale_y_continuous("LDI")+
scale_x_continuous("Time")+
ggtitle(paste(Powerlist[i], ' Time \n',
"LDI \n",
sep=''))
#save plot as PNG
ggsave(plot = last_plot(), file= paste(StoreResults, '/Results/',
Powerlist[i], "TEST.png", sep=''), scale=2)
print(boxplot)
}
}
#Run the function
Box.graph(df)
但返回的错误是:
Error in eval(expr, envir, enclos) : object 'value' not found
我认为问题在于我不知道如何告诉R用不同的容量值绘制第1-9列的值。
有人可以帮忙吗?