假设我有两个因素,我想在同一个图上绘制它们,两个因素都有相同的水平.
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来绘制它.
使用晶格包可以获得更详细的结果:
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)
