删除未使用的分类值箱线图 - R

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的列。 enter image description here 我尝试使用boxplot进行提示。
boxplot(x~c,data=dfMod, names = c("x1", "x2"))

但是这会出现名称大小不正确的错误。感谢您的帮助。
1个回答

9

在使用 subset 后使用 droplevels

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

你也可以使用 classfactor 改为 character,并在 boxplot 调用中进行子集操作

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

enter image description here


显然,这是一件容易的事情,我为不得不在SO上询问而感到有点尴尬。为了更好地掌握R术语,我应该搜索什么才能找到droplevels命令?“从数据框列中删除未使用的分类值”并没有特别有帮助。 - JHowIX
如果你在谷歌上搜索“在R中去除未使用的因子”,会得到很多关于删除未使用水平的结果 ;) - Jilber Urbina

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接