我有一个包含3列的数据集,我试图将pdf绘制为列ID。这是我的数据的哪一部分。
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。当我深入研究时,我意识到qplot或ggplot生成的图中只缺少在我的数据中不再 2次出现的ID。在此示例中,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个点来绘制密度函数?
答案 0 :(得分:2)
看起来ggplot2_1.0.1
确实需要至少三个点来估算密度。但是,此行为在2015年6月12日的this commit github存储库中似乎已更改。目前在CRAN上的版本于3月发布。我不确定何时期待ggplot2
的下一个版本。如果这种行为对你很重要,你可以尝试直接从github中提取源代码,