【问题标题】:Three way frequency table to data frame matrix三路频率表到数据帧矩阵
【发布时间】:2015-07-10 08:08:48
【问题描述】:

我正在使用以下方法在 R 中生成行百分比频率表:

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) 不能强制转换为数据框矩阵。同样使用excludetable(df$GP, df$freq, df$SEX, exclude="Boy") 也会导致同样的问题。

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

【问题讨论】:

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

标签: r dataframe


【解决方案1】:
p_tabl <- prop.table(xtabs(freq~GP+SEX, data=df))
(as.data.frame(p_tabl))

【讨论】:

  • 谢谢,只需要通过添加“1”来指定行百分比 -> prop.table(xtabs(freq~SEX+GP, data=df),1).
猜你喜欢
  • 2021-08-29
  • 1970-01-01
  • 2021-06-27
  • 2017-03-29
  • 2022-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-25
相关资源
最近更新 更多