我使用这样的事情来筛选我的数据帧:无法过滤数据框?
d1 = data.frame(data[data$ColA == "ColACat1" & data$ColB == "ColBCat2", ])
当我打印d1
,它按预期工作。但是,当我键入d1 $ ColB时,它仍会打印原始数据框中的所有内容。
> print(d1)
ColA ColB
-----------------
ColACat1 ColBCat2
ColACat1 ColBCat2
> print(d1$ColA)
Levels: ColACat1 ColACat2
也许这是预期,但是当我通过d1
到ggplot,它搅乱了我的图形,并且不使用过滤器。是否有反正我可以过滤数据帧,并得到只有匹配过滤器的记录?我想d1
不知道data
的存在。
+1非常感谢你的解释。我不明白的是,为什么ggplot最终使用了不存在的级别。可能是他们有自己的理由。我在R和ggplot中都是一个完整的初学者,所以我最终花了一个多小时的时间试图了解发生了什么:) – Legend
考虑因素水平的处理(即保留它们,尽管缺少数据),例如在分面时数据世界中的'正常',但它使大多数其他人失去知觉。理由是,如果缺少某些东西,你希望明确地显示它缺失,例如通过显示一个没有数据的方面。 – joran