cdfCompare 中的错误,未找到对象“离散”

问题描述

我正在为数据框中的 2 列数据绘制 2 个累积分布。我的代码是:

library(Envstats)
cdfCompare(Ratio1,Ratio2 discrete = FALSE,prob.method = ifelse(discrete,"emp.probs","plot.pos"),plot.pos.con = NULL,distribution = "norm",param.list = NULL,estimate.params = is.null(param.list),est.arg.list = NULL,x.col = "blue",y.or.fitted.col = "black",x.lwd = 3 * par("cex"),y.or.fitted.lwd = 3 * par("cex"),x.lty = 1,y.or.fitted.lty = 2,digits = .Options$digits,type = ifelse(discrete,"s","l"),main = NULL,xlab = NULL,ylab = NULL,xlim = NULL,ylim = NULL)

当我运行这段代码时,产生了一个错误

Error in ifelse(discrete,"plot.pos") : 
  object 'discrete' not found

当我使用较短的代码时:

cdfCompare(Ratio1,Ratio2 discrete = FALSE) 

没有错误。我也试过设置

离散=真

,它看起来不影响绘图的形状(不平滑,我有 ~170,000 个值)。非常感谢。

enter image description here

解决方法

您可以定义一个单独的变量来传递离散值并使用 if/else 选择 prob.method

discrete_value <- FALSE

cdfCompare(Ratio1,Ratio2 discrete = discrete_value,prob.method = if(discrete_value) "emp.probs" else "plot.pos",plot.pos.con = NULL,distribution = "norm",param.list = NULL,estimate.params = is.null(param.list),est.arg.list = NULL,x.col = "blue",y.or.fitted.col = "black",x.lwd = 3 * par("cex"),y.or.fitted.lwd = 3 * par("cex"),x.lty = 1,y.or.fitted.lty = 2,digits = .Options$digits,type = ifelse(discrete,"s","l"),main = NULL,xlab = NULL,ylab = NULL,xlim = NULL,ylim = NULL)