首页 文章

R:子集的图仍然包括被排除的属性,如何在没有它们的情况下绘制图?

提问于
浏览
0

我想在R画一个箱子图:

我有一个包含70个属性的数据集:格式为

patient number       medical_speciality      number_of_procedures
   111                    Ortho                      21
   232                    Emergency                  16
   878                    Pediatrics                 20
   981                    OBGYN                      31
   232                    Care of Elderly            15
   211                    Ortho                      32
   238                    Care of Elderly            11
   219                    Care of Elderly            6
   189                    Emergency                  67
   323                    Emergency                  23
   189                    Pediatrics                 1
   289                    Ortho                      34

我一直试图让一个子集只包含紧急情况,小儿科的盒子图(实际上有10000个数据点)

我以为我可以这样做:

newdata<-subset(olddata[ms$medical_specialty=='emergency'|olddata$medical_specialty=='pediatrics',])
plot(newdata)

因为如果我对新数据进行总结,那么所有它都是小儿科和紧急结果 . 但是当涉及到绘图时,它仍然包括矫形器,OBGYN,在x轴上照顾老人而没有盒子图 .

我认为有一种方法可以通过ggplot来做到这一点

ggplot(newdata, aes(x=medical_speciality, y=num_of_procedures, fill=cond)) + geom_boxplot()

但这给了我错误:不知道如何自动选择data.frame类型的对象的比例 .

默认为连续错误:美学必须是长度为1或与dataProblems相同的长度:cond

有人可以帮我吗?

1 回答

  • 1

    我相信你的问题来自 medical_speciality 列是一个因素 .

    因此,即使您以正确的方式对数据进行分组,您仍然可以获得所有级别(包括“Ortho”,“OBGYN”等等) .

    您可以使用 droplevels 函数删除它们:

    newdata<-subset(olddata[ms$medical_specialty=='emergency'|olddata$medical_specialty=='pediatrics',])
    
    newdata <- droplevels(newdata) ## THIS IS THE NEW ADDITION
    
    plot(newdata)
    

    这有帮助吗?

相关问题