我的数据集(origen)由3列,因子变量(Origen)和两个cuantitative变量(Ae和Adp)组成。 origen分类变量的一些因子仅由1或2个观察值组成。
运行此代码时:
ggplot (origen, aes (x = Ae, y = Adp, colour = Origen)) +
stat_density2d(aes (fill = Origen, colour = Origen, alpha = 0.9),
geom = "polygon", lty = 3,lwd = 0.001) + xlim(8, 23) + ylim(22, 58) +
scale_alpha(range = c(0, 0.2),guide = "none") +
geom_point(aes(fill=Origen),colour="black",pch=21,size=3,alpha=0.1)
我没有得到ggplot()中stat_density2d函数的结果。但是,当我手动删除那些最多只包含1或2个观察值的组时,上面的代码可以正常工作并显示密度区域。
如何通过修改代码来避免此问题?必须在stat_density2d函数中写入哪些新属性才能运行超过两个观察组以及其他组的点?
答案 0 :(得分:1)
这不是您问题的直接答案,但您可以通过group_by()
和filter()
删除包含< 1观察的群组。
library(dplyr)
data_filtered <- data %>%
group_by(Origen) %>%
filter(n() > 1)
(警告“缺少值需要TRUE / FALSE”似乎从这里提出:https://github.com/tidyverse/ggplot2/blob/8778b48b37d8b7e41c0f4f213031fb47810e70aa/R/stat-density-2d.r#L58)