2015-07-10 29 views
0

我使用下面的方法生产行百分比的频数分布表中ř三通频率表以数据帧矩阵

df <- as.data.frame(c("Boy","Girl","Boy","Girl")) 
colnames(df) <- "SEX" 
df$GP <- c("A","A","B","B") 
df$freq <- c(1,2,3,4) 

tab <- as.data.frame.matrix(prop.table(table(df$GP, df$freq),1)) 

然而,我想由可变频率来区分“SEX ”。有没有办法做到这一点,而不分性别的数据框,创建两个数据框,一个男孩和一个女孩然后合并在一起?

三路频率表table(df$GP, df$freq, df$SEX)不能被强制到数据帧矩阵中。同样使用exclude(如table(df$GP, df$freq, df$SEX, exclude="Boy"))会导致相同的问题。

有没有一种有效的方法来做到这一点?

+0

是的,但如何将其转换为data.frame.matrix? – user2568648

回答

2
p_tabl <- prop.table(xtabs(freq~GP+SEX, data=df)) 
(as.data.frame(p_tabl)) 
+0

谢谢,只需要通过添加“1” - >'prop.table(xtabs(freq〜SEX + GP,data = df),1)'来指定行百分比。 – user2568648