[英]R - Modified mosaic plot from descr package
我有一个数据帧db
用2个分类变量: varA
具有4个级别( 0
, 1
, 2
, 3
), varB
有2个电平( yes
, no
)。 varB
没有varB
级别0的varA
:
id varA varB
1 2 yes
2 3 no
3 3 no
4 1 yes
5 0 NA
6 1 no
7 2 no
8 3 yes
9 3 yes
10 2 no
我使用descr
包中的CrossTable
创建了一个列联表,然后使用plot
函数创建了一个镶嵌图:
table <- CrossTable(db$varA,db$varB, missing.include=FALSE)
plot(table,xlab="varA",ylab="varB")
我得到了这个情节:
我想从情节中消除等级0。 我还想添加2个y轴,一个在图的左侧,比例从0到1,另一个在y轴上,比例从1到0。
你可以帮帮我吗?
好吧, 那很烦人。 不支持子集此类“ CrossTable”对象。 如果它是一个行为举止类似表的对象,则只需将table[ , -1]
传递给绘图函数即可。 相反,您需要在传递给CrossTable的数据之前进行分计数:
table <- with( na.omit(db), CrossTable( varA, varB, missing.include=TRUE))
plot(table, xlab="varA", ylab="varB")
BTW使用名称table
的数据对象是相当混乱到正规[R用户,因为table
的功能是我们的基本工具之一。
我个人会避免使用CrossTable函数,因为它的输出太奇怪了,无法用于典型R函数的管理。 是的,我知道它会产生类似SAS的输出,但是R用户逐渐喜欢table
函数的紧凑输出以及可用于表对象的许多矩阵运算。 您可能需要通过prop.table
手动获取保证金百分比。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.