ggplot/qqplotr返回数据格式错误

ggplot/qqplotr返回数据格式错误,r,ggplot2,R,Ggplot2,我正试图从属于nycflights13软件包的航班数据框内的航班时间数据创建QQ和/或PP图。我正在使用ggplot 这是我的代码: library(nycflights13) library(qqplotr) ggplot(data = flights$air_time, mapping = aes(sample = norm)) + stat_qq_band() + stat_qq_line() + stat_qq_point() + labs(x = "Theoretic

我正试图从属于nycflights13软件包的航班数据框内的航班时间数据创建QQ和/或PP图。我正在使用ggplot

这是我的代码:

library(nycflights13)
library(qqplotr)

ggplot(data = flights$air_time, mapping = aes(sample = norm)) +
  stat_qq_band() +
  stat_qq_line() +
  stat_qq_point() +
  labs(x = "Theoretical Quantiles", y = "Sample Quantiles")
当我尝试运行此命令时,会出现以下错误:

Error: `data` must be a data frame, or other object coercible by `fortify()`, not a numeric vector
导致此错误的原因是什么?如何修复?我通常按如下方式调用ggplot,因此我不知道是否存在问题:

ggplot(flights, air_time, aes(sample = norm))

更改示例参数以反映数据中的变量

Air_time <- flights[, "air_time"] # Or select a random sample to save time
ggplot(data = Air_time, mapping = aes(sample = air_time)) +
  stat_qq_band() +
  stat_qq_line() +
  stat_qq_point() 

更改示例参数以反映数据中的变量

Air_time <- flights[, "air_time"] # Or select a random sample to save time
ggplot(data = Air_time, mapping = aes(sample = air_time)) +
  stat_qq_band() +
  stat_qq_line() +
  stat_qq_point() 

正如错误消息所说,flights$air_time是一个数字向量,而不是data.frame。此外,我高度怀疑您是否通常按以下方式调用ggplot飞行、飞行时间、aessample=norm@dario如何将其转换为数据帧。我尝试使用函数data.frame,但效果不好。但是flights已经是data.frame了。请检查对ggplot调用的语法。您认为有效的代码不起作用,即ggplotflights、air_time、aessample=norm不起作用!正如错误消息所说,flights$air_time是一个数字向量,而不是data.frame。此外,我高度怀疑您是否通常按以下方式调用ggplot飞行、飞行时间、aessample=norm@dario如何将其转换为数据帧。我尝试使用函数data.frame,但效果不好。但是flights已经是data.frame了。请检查对ggplot调用的语法。您认为有效的代码不起作用,即ggplotflights、air_time、aessample=norm不起作用!虽然你的答案很好,但可能出于说教的原因,ggplotdata=flights、mapping=aessample=air\U time+等更为明确;我刚刚注意到您没有像在小插曲中那样使用sample=norm。这仍然能产生正确的情节吗?@dario。我想让OP有机会选择一个随机的数据样本,因为它相当大@鲁德韦霍夫。sample的映射参数必须是数据中的有效变量。所以把sample=norm放在这里会产生一个错误。渐晕图使用的是一个名为smp的数据框,其中包含一个名为norm的变量。默认分布是正常的,如帮助页面中所述。虽然您的答案非常好,但可能出于说教的原因,ggplotdata=flights、mapping=aessample=air_time+等更为明确;我刚刚注意到您没有像在小插曲中那样使用sample=norm。这仍然能产生正确的情节吗?@dario。我想让OP有机会选择一个随机的数据样本,因为它相当大@鲁德韦霍夫。sample的映射参数必须是数据中的有效变量。所以把sample=norm放在这里会产生一个错误。vignette使用一个名为smp的数据框,其中包含一个名为norm的变量。默认分布是正常的,如帮助页面中所述。