2014-11-04 38 views
2

我期待为三个主要效应构建一个应变表。这些都是犯罪,性别和先前的信念。响应变量是否是一个宽松的句子被授予。R中的三因子应变表

这是迄今为止我所见过的最好的。

 Crime Gender Priorconv Yes No 
1  Shoplifting Men   N 24 1 
2 Other Theft Acts Men   N 52 9 
3  Shoplifting Women   N 48 3 
4 Other Theft Acts Women   N 22 2 
5  Shoplifting Men   P 17 6 
6 Other Theft Acts Men   P 60 34 
7  Shoplifting Women   P 15 6 
8 Other Theft Acts Women   P 4 3 

这是由下面的代码

table1<-expand.grid(Crime=factor(c("Shoplifting","Other Theft Acts")),Gender=factor(c("Men","Women")), 
Priorconv=factor(c("N","P"))) 

table1<-data.frame(table1,Yes=c(24,52,48,22,17,60,15,4),No=c(1,9,3,2,6,34,6,3)) 

创建不幸的是,这是不是很优雅,所以我想知道是否有另一种方式来更清晰地呈现数据。

谢谢。

+1

也许看看'xtabs'和/或' ftable' – 2014-11-04 21:56:33

+0

@DominicComtois我喜欢xtabs的功能。我尝试使用xtabs(cbind(是,否)〜Crime + Gender + Priorconv,data = table1) – JohnK 2014-11-04 22:16:08

+0

很高兴知道!也许你可以发布代码和输出作为你自己问题的答案。我相信这对你情况下的其他人会有用。 – 2014-11-04 22:27:04

回答

4

应急你可以使用样品运营商,并把它内部功能改变字符串的数字,如

factory <- function(i) { 
    crime <- sample(c("Shoplifting","Other Theft Acts"),i, replace = TRUE) 
    gender <- sample(c("Men","Women"),i,replace = TRUE) 
    priorconv <- sample(c("P","N"),i, replace = TRUE) 
    table <- data.frame(crime,gender,priorconv) 
    return(table) 
} 
table1 <- factory(20) 

结果:

   crime gender priorconv 
1  Shoplifting Men   N 
2  Shoplifting Women   P 
3 Other Theft Acts Men   P 
4  Shoplifting Men   P 
5 Other Theft Acts Women   N 
6  Shoplifting Women   N 
7  Shoplifting Women   P 
8  Shoplifting Men   P 
9 Other Theft Acts Women   P 
10  Shoplifting Men   P 
11 Other Theft Acts Men   N 
12 Other Theft Acts Men   P 
13  Shoplifting Men   P 
14  Shoplifting Women   N 
15 Other Theft Acts Men   N 
16 Other Theft Acts Men   P 
17 Other Theft Acts Women   P 
18  Shoplifting Women   P 
19 Other Theft Acts Men   N 
20  Shoplifting Women   N 
+0

这里的表格有两个条目,不是? – JohnK 2014-11-04 22:10:28