3

我有一个包含 3 列的数据集,我正在尝试为其绘制列 ID 的 pdf。这是我的数据的一部分。

        day          ID   count
        8754     48112050     1
        8975     48112050     3
        8327     61010046     2
        8346     61010046  3997
        8506     61010046     1
        8605     61010046     1

我为此使用 qplot:

qplot(count, colour=factor(ID), data=df, geom="density")

或ggplot:

ggplot(df, aes(x=count, colour= ID))+geom_density()

但它不会为所有 ID 绘制 pdf。当我深入研究时,我意识到只有在我的数据中出现超过 2 次的 ID 在由 qplot 或 ggplot 生成的图中丢失。在本例中,ID:48112050。

我只绘制了这个 ID 的密度,它可以工作。

         day          ID   count
        8754     48112050     1
        8975     48112050     3

但是,当我将 df 限制为仅包含此 ID 或仅出现 2 次的任何 ID 时,qplot 或 ggplot 会给我以下错误:

Error in exists(name, envir = env, mode = mode) : 
argument "env" is missing, with no default

这是否意味着 qplot/ggplot 至少需要 3 个点来绘制密度函数?

4

1 回答 1

2

看起来ggplot2_1.0.1确实需要至少三个点来估计密度。但是,随着 2015 年 6 月 12 日的这次提交,这种行为在 github 存储库中似乎发生了变化。目前在 CRAN 上的版本已于 3 月发布。我不确定什么时候可以期待下一个版本的ggplot2. 如果这种行为对您至关重要,您可以尝试直接从 github 拉取源代码,

于 2015-07-22T16:32:00.187 回答