删除未使用的分类值boxplot - R.

JHo*_*wIX 2 r boxplot dataframe

我有以下代码:

x = rnorm(30, 1, 1)
c = c(rep("x1",10), rep("x2",10), rep("x3",10))
df = dataframe(x,c)
boxplot(x ~ c, data=df)
Run Code Online (Sandbox Code Playgroud)

它很棒.但如果我决定不再对看到x3感兴趣,请删除它,并重新绘制:

dfMod = subset(df, c %in% c("x1", "x2"))
boxplot(x ~ c,data=dfMod)
Run Code Online (Sandbox Code Playgroud)

boxplot仍然显示x3的列.

在此输入图像描述

香港专业教育学院尝试使用boxplot提示

boxplot(x~c,data=dfMod, names = c("x1", "x2"))
Run Code Online (Sandbox Code Playgroud)

但这会引发名称大小不正确的错误.在此先感谢您的帮助

Jil*_*ina 8

droplevels之后使用subset

dfMod <- subset(df, c %in% c("x1", "x2"))    
dfMod$c <- droplevels(dfMod$c)
boxplot(x ~ c,data=dfMod)
Run Code Online (Sandbox Code Playgroud)

您还可以使用class更改factorcharacter内部boxplot调用和子集

class(df) <- c("numeric", "character")
boxplot(x ~ c, subset=c %in% c("x1", "x2"),  data=df)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述