1

我正在尝试使用以下代码绘制图表:

Require(Hmisc)
Ecdf(ceac_primary,xlab="axis label",xlim=c(5000,50000),q=c(0.9,0.1),
ylab="Probability of Success",main="CEAC")

其中 ceac_primary 是具有 1 个变量的 90k 观测值的数据框。

当我包含 'xlab="axis label"' 时,我不断收到以下错误:

Error in Ecdf.default(v, group = group, weights = weights, normwt = normwt,  : 
formal argument "xlab" matched by multiple actual arguments

但是,如果我排除代码的 x 轴标签部分,它会很好地绘制图形。

这是一个已知问题吗?如果是,是否有其他方法来绘制 x 轴标签?

谢谢

4

1 回答 1

1

在源代码中挖掘Ecdf.data.frame(将 data.frame 传递给时调用的方法Ecdf),看起来该函数创建了一个稍后传递给xlab参数的对象。因此,在使用 data.framexlab运行时,不应将其作为用户提供的参数。Ecdf这是创建lab传递给xlabwithin的对象的代码Ecdf.data.frame

lab <- if (vnames == "names") 
        nam[j]
    else label(v, units = TRUE, plot = TRUE, default = nam[j])

然后Ecdf用 调用xlab = lab,但省略号中的任何参数Ecdf.data.frame也传递给Ecdf。由于xlab不是 的正式论点Ecdf.data.frame,这就是您得到错误的原因。

要绕过它,请尝试以下任一方法:

将您的 data.frame 转换为适当类的向量(我想是数字),然后运行

Ecdf(ceac_primary_Vec, xlab = "axis label")

或者,您可以使用包label中的函数为data.frame 中的一列创建标签Hmisc。如果该列被调用myCol,您可以运行

label(ceac_primary$myCol) <- "axis label"
Ecdf(ceac_primary)

这应该可以正确打印您的轴标签。

于 2012-09-20T19:05:40.003 回答