R:使用log10 qqline警告消息转换数据,条件具有长度> 1,只使用第一个元素

时间:2017-02-22 16:08:08

标签: r warnings transformation

我想用对数转换R中的数据,并想用qqplot绘制它。我收到了警告信息,见下文。这对情节到底意味着什么?

log <-log10(life$p) 
qqplot(life$p,log, main = "Normal Q-Q Plot",plot.it = TRUE)
qqline(life$p,log, col="red")

警告信息是:

  

if if(datax){:
   条件的长度> 1,只使用第一个元素

1 个答案:

答案 0 :(得分:0)

这里好像有些不对劲。

您对$user_data = user_data( $session_user_id, // $user_id $conn, // $conn array('user_id','username','password','first_name','last_name','email','type') // fields as ARRAY ); 的来电几乎肯定不是您想要的。 请注意,文档qqplot说:

  

qqplot生成两个数据集的QQ图。

您的代码是:
?qqplot
你给它的“两个数据集”是生命$ p和log,所以 这将绘制生命$ p的分位数与分位数 of log = log10(life $ p)。这是没有意义的。既然你的头衔 说“正常Q-Q情节”,我怀疑你想绘制日志 反对正态分布。要做到这一点,你可能想要:
qqplot(life$p,log, main = "Normal Q-Q Plot",plot.it = TRUE)

现在给你的错误信息 qqnorm(log, main = "Normal Q-Q Plot")的文档将参数序列赋予:

qqline

您对此功能的调用是:

qqline(y, datax = FALSE, distribution = qnorm,
       probs = c(0.25, 0.75), qtype = 7, ...)

您没有为参数命名,因此按顺序对它们进行解释。 life $ p是y,log是datax。 datax应该是合乎逻辑的 值(TRUE / FALSE),但是你传递一个数字数组, 因此错误消息。我相信你的意图是:

qqline(life$p,log, col="red")

最后,qqline(log, col="red") 是自然对数函数的名称。 为变量log命名是个不错的主意 如果指的是函数或变量,则会造成混淆。