我正在尝试使用以下代码绘制图表:
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轴标签?
由于
答案 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
这应该可以正确打印轴标签。