使用Ecdf标记绘图轴的错误

时间:2012-09-20 17:52:28

标签: r

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

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 =“轴标签”'时,我不断收到以下错误:

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

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

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

由于

1 个答案:

答案 0 :(得分:1)

Ecdf.data.frame的源代码中挖掘(将data.frame传递给Ecdf时调用的方法),看起来该函数创建了一个稍后传递给{的对象{1}}论点。因此,在使用data.frame运行xlab时,不应将xlab视为用户提供的参数。以下是创建在Ecdf内传递给lab的对象xlab的代码:

Ecdf.data.frame

然后使用lab <- if (vnames == "names") nam[j] else label(v, units = TRUE, plot = TRUE, default = nam[j]) 调用Ecdf,但xlab = lab的elipses中的任何参数也会传递给Ecdf.data.frame。由于Ecdf不是xlab的正式参数,因此您就会收到错误。

要解决此问题,请尝试执行以下任一操作:

将data.frame转换为相应类的向量(数字,我推测),然后运行

Ecdf.data.frame

或者,您可以使用Ecdf(ceac_primary_Vec, xlab = "axis label") 包中的label函数为data.frame中的一列创建标签。如果该列名为Hmisc,则可以运行

myCol

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