R:子集的图仍然包含排除的属性,我如何在没有它们的情况下绘制图?
R: Plots of subset still include excluded attributes, how do I get draw a plot without them?
我正在尝试在 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)
因为如果我做一个新数据的总结,它只有儿科和急诊结果。但是当涉及到绘图时,它仍然在没有箱线图的情况下在 x 轴上包括邻位、妇产科、老年人护理。
我想在 ggplot 中有一种方法可以做到这一点
ggplot(newdata, aes(x=medical_speciality, y=num_of_procedures, fill=cond)) + geom_boxplot()
但这给了我错误:
不知道如何为 data.frame 类型的对象自动选择比例。
默认为连续
错误:美学必须是长度一,或与 dataProblems:cond
长度相同
有人能帮帮我吗?
我认为您的问题是因为 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)
这有帮助吗?
我正在尝试在 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)
因为如果我做一个新数据的总结,它只有儿科和急诊结果。但是当涉及到绘图时,它仍然在没有箱线图的情况下在 x 轴上包括邻位、妇产科、老年人护理。
我想在 ggplot 中有一种方法可以做到这一点
ggplot(newdata, aes(x=medical_speciality, y=num_of_procedures, fill=cond)) + geom_boxplot()
但这给了我错误: 不知道如何为 data.frame 类型的对象自动选择比例。
默认为连续 错误:美学必须是长度一,或与 dataProblems:cond
长度相同有人能帮帮我吗?
我认为您的问题是因为 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)
这有帮助吗?