首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >盒子里的Drop.levels和胡须图

盒子里的Drop.levels和胡须图
EN

Stack Overflow用户
提问于 2015-11-24 23:16:19
回答 2查看 280关注 0票数 0

我需要在我的盒子和胡须图中使用drop.levels函数。我使用的数据是Dance,数据帧是dance$new和dance$type,我想要包含的变量是Contra、Blues和Swing。还有另外3个我不想包含的变量: Lindy、Salsa和Tango。

这就是我所拥有的:

代码语言:javascript
复制
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是不是错了?

EN

回答 2

Stack Overflow用户

发布于 2015-11-25 01:06:57

猜测一下,你可能想要

代码语言:javascript
复制
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.levelsdroplevels都用于从数据集中删除未使用的级别。上面的subset()命令更有可能做你想做的事情,
  • 我使用的是基数R中的droplevels(),而不是gdata::drop.levels。在base R中,droplevels()已经有几年的历史了;gdata::drop.levels的历史可以追溯到它出现之前)。
  • 我正在使用new~type,data=...而不是dance$new~dance$type;在可能的情况下使用data参数通常更具可读性和健壮性。

您甚至可能不需要droplevels()boxplot()默认情况下可能会忽略未使用的级别。name参数可能也是多余的。

票数 0
EN

Stack Overflow用户

发布于 2015-11-27 05:35:04

谢谢你的帮助。你的建议帮我弄明白了。

我最终绘制了子集数据,这让我避免了drop levels函数。下面是我使用的代码:

代码语言:javascript
复制
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")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33897303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档