3

我有以下代码:

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)

它工作得很好。但是,如果我决定不再对查看 x3 感兴趣,请将其删除并重新绘制:

dfMod = subset(df, c %in% c("x1", "x2"))
boxplot(x ~ c,data=dfMod)

箱线图仍然显示 x3 的列。

在此处输入图像描述

我试过给 boxplot 一个提示使用

boxplot(x~c,data=dfMod, names = c("x1", "x2"))

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

4

1 回答 1

9

droplevels之后使用subset

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

您还可以用于class更改和子集内部调用factorcharacterboxplot

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

在此处输入图像描述

于 2013-11-13T22:08:11.480 回答