由于 dplyr::filter() 而摆脱 ghost/artifact 变量

Getting rid of ghost/artifact variables as a result of dplyr::filter()

我有一个数据框:

x <- c(rep("A", 3), rep("B", 3), rep("C", 3))
y <- 1:9
z <- seq(from = 9, to = 81, by = 9)
df <- data.frame(x, y, z); rm(x, y, z)

我只想保留 "A" 和 "C":

library(dplyr)

df <- df %>%
    filter(x %in% c("A", "C"))

但是当我stripchart()结果出来的时候,"B"的鬼魂还在:

with(df, stripchart(z ~ x, method = "jitter", pch=1))

为了摆脱 "B" artifact/ghost 变量,我需要在我的 filter 表达式或链中使用什么参数。

@joran 的建议奏效了:

df <- df %>%
    filter(x %in% c("A", "C")) %>%
    droplevels()

谢谢!