在同一图表上绘制两个因子

Cam*_*m B 0 r factors

假设我有两个因素,我想在同一个图上绘制它们,两个因素都有相同的水平.

s1 <- c(rep("male",20), rep("female", 30))
s2 <- c(rep("male",10), rep("female", 40))
s1 <- factor(s1, levels=c("male", "female"))
s2 <- factor(s2, levels=c("male", "female"))
Run Code Online (Sandbox Code Playgroud)

我原本以为使用table函数会产生正确的图形结果,但它会弹出.

table(s1, s2)
        s2 
s1       male female   
male     10     10   
female    0     30
Run Code Online (Sandbox Code Playgroud)

那么真的有两个问题,表格功能是什么来获得这个结果?我可以使用哪些其他功能来创建具有相同级别功能的2系列图形?

此外,如果它是一个因素我在gplots包中使用barplot2来绘制它.

Vit*_*hKa 5

使用晶格包可以获得更详细的结果:

s1 <- factor(c(rep("male",20), rep("female", 30)))
s2 <- factor(c(rep("male",10), rep("female", 40)))
D <- data.frame(s1, s2)

library(lattice)
histogram(~s1+s2, D, col = c("pink", "lightblue"))
Run Code Online (Sandbox Code Playgroud)

替代文字

或者,如果您希望男性/女性并排以便于比较:

t1 <- table(s1)
t2 <- table(s2)
barchart(cbind(t1, t2), stack = F, horizontal = F)
Run Code Online (Sandbox Code Playgroud)

替代文字