我需要在我的盒子和胡须图中使用drop.levels函数。我正在使用的数据是Dance,数据框架是舞蹈$ new和dance $ type,我想要包含的变量是Contra,Blues和Swing。还有其他3个我不想包含的变量; Lindy,Salsa和Tango。
这就是我所拥有的:
box.labels<-c("Blues","Contra","Swing")
boxplot(dance$new~dance$type, ylab="Dance Count",
xlab="Type", name=box.labels, drop.levels(Lindy, Salsa, Tango),
main="Dancing for a Healthier You")
我合并drop.levels错了吗?
答案 0 :(得分:0)
猜测,你可能想要
box.labels<-c("Blues","Contra","Swing")
boxplot(new~type, data=droplevels(subset(dance,type %in% box.labels)),
ylab="Dance Count",
xlab="Type", name=box.labels,
main="Dancing for a Healthier You")
这里的要点是:
drop.levels
和droplevels
都用于从数据集中删除未使用的级别。上面的subset()
命令更有可能做你想做的事。droplevels()
使用gdata::drop.levels
。 droplevels()
基地R已有几年历史; gdata::drop.levels
在可用之前发布。 new~type,data=...
代替dance$new~dance$type
;在可能的情况下使用data
参数通常更具可读性和更强大。你可能甚至不需要droplevels()
;默认情况下,boxplot()
可能会忽略未使用的级别。 name
参数也可能是多余的。
答案 1 :(得分:0)
感谢您的帮助。你的提示帮助我解决了问题。
我最终绘制了子集数据,这让我避免了丢弃级别功能。这是我使用的:
dancenew<-subset(Dance, Type=="Lindy" | Type== "Blues" | Type=="Contra")
box.labels<-c("Lindy","Blues","Contra")
boxplot(dancenew$Count~dancenew$Type, ylab="Dance Count", data=ausportnew, xlab="Type", name=box.labels, main="Dancing for a healthier you")