我有一个生成一些图的功能:
estrat.precios <- function(numeric1,numeric2,factor1,numeric3,numeric4,numeric5,string){
suppressPackageStartupMessages(library(lattice))
# histograma de distribución por factor1
tit=paste("Distribución de descuentos por factor1,",string)
h2<-histogram(~ numeric2 | factor1,main=tit,xlab = "Descuento")
# scatterplot de Descuentos vs proyección de venta por grupo
tit<-paste("Desctos vs. Proyección de Venta por factor1,",string)
s<-xyplot(numeric2 ~ numeric3 | factor1, main = tit,scales=list(x=list(log=10,equispaced.log=T)),xlab = "Monto Techo",ylab = "Descuento")
# scatterplot de descuentos vs precio de referencia por grupo
tit<-paste("Desctos vs precio de referencia por grupo,",string)
s2<-xyplot(numeric2 ~ numeric4, group= factor1, main = tit, scales=list(x=list(log=10,equispaced.log=T)), auto.key = T, xlab="Precios de Referencia", ylab="Descuento")
# Density plot de variación respecto de promedio
tit<-paste("Densidad de variaciones vs promedio de precios,",string)
d<-plot(density((numeric1-numeric5)/numeric5,na.rm=T),main=tit,cex.main=0.9)
# boxplot variación respecto de promedio
bs<-as.character(summary(numeric1-numeric5))
cs<-paste("Min=",bs[1],"1Q=",bs[2],"Mean=",bs[4],"3Q=",bs[5],"Max=",bs[6])
tit<-paste("Distribución de variaciones vs promedio,",string)
b<-boxplot((numeric1-numeric5)/numeric5,main=tit,cex.main=0.9)
mtext(text=c,side=1)
return((list(h2,s,s2,d,b)))
}
当它运行时,它会在屏幕上产生大量不需要的输出(这是一个简短的摘录):
[[4]]
NULL
[[5]]
[[5]]$stats
[,1]
[1,] -0.2194174757
[2,] -0.0885108962
[3,] 0.0000000000
[4,] 0.0002734618
[5,] 0.1333333333
[[5]]$n
[1] 911
我已经尝试将函数的最后一行更改为:
return(invisible(list(h2,s,s2,d,b)))
但是它不会产生前3个图:h2,s,s2(那些使用Lattice),只有d和b。
如何避免不需要的输出到屏幕并保留5个图? 提前致谢
答案 0 :(得分:0)
您可以在生成最后两个图之前显示使用莱迪思的图并返回invisible
。
estrat.precios <- function(numeric1,numeric2,factor1,numeric3,numeric4,numeric5,string)
{
suppressPackageStartupMessages(library(lattice))
...
s2<-xyplot(numeric2 ~ numeric4, group= factor1, main = tit, scales=list(x=list(log=10,equispaced.log=T)), auto.key = T, xlab="Precios de Referencia", ylab="Descuento")
# display plots here
plot(h2)
plot(s)
plot(s2)
# Density plot de variación respecto de promedio
tit<-paste("Densidad de variaciones vs promedio de precios,",string)
...
invisible(list(h2,s,s2,d,b))
}