我正在为数据文件中的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, "emp.probs", "plot.pos") :
object 'discrete' not found当我使用较短的代码时:
cdfCompare(Ratio1,Ratio2 discrete = FALSE) 没有错误。我也试着
discrete=TRUE
,它看起来不影响绘图的形状(不光滑,我有17万个数值)。非常感谢。

发布于 2021-04-16 06:53:39
您可以定义一个单独的变量来传递离散值,并使用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)https://stackoverflow.com/questions/67117268
复制相似问题