Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R将不需要的输出返回到屏幕或删除一些返回值_R_Function_Return_Echo_Invisible - Fatal编程技术网

R将不需要的输出返回到屏幕或删除一些返回值

R将不需要的输出返回到屏幕或删除一些返回值,r,function,return,echo,invisible,R,Function,Return,Echo,Invisible,我有一个函数来生成一些绘图: 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 fact

我有一个函数来生成一些绘图:

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)))
}
我已尝试将函数的最后一行更改为:

return(invisible(list(h2,s,s2,d,b)))
但它不会生成前3个图:h2、s、s2(使用晶格的),只有d和b

如何避免不必要的输出到屏幕并保留5个绘图?
提前感谢

您可以在生成最后两个绘图之前显示使用Lattice的绘图,并返回不可见的

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))
}

estrat.precios您是否可以通过向函数中提供您试图输入的值来实现这一点?你能更详细地描述一下你想要达到的目标吗?你到底要不要这些情节?你想用这些情节做什么?托马斯,谢谢你的回答。您可以通过调用函数像
estrat.precios(1:5,seq(0.01,0.05,0.01),c(“A”,“A”,“B”,“c”,“c”),21:25,2:6,1.1:5.1,“string 09”)
进行复制。我想让绘图分析定价策略(可视化),然后决定是否保存它们。当我尝试您的解决方案时,它会有效地抑制屏幕上的输出,但在
s2
的位置会显示一个空白画布(其他4个绘图都可以)。查找文件时,会出现警告:
显示列表重画不完整
。我遗漏了什么吗?我看到了五个情节。在每个
plot
语句之后和
d之后执行
Sys.sleep(1)
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))
}