从频率表生成 data.frame

ben*_*ron 3 r

我在 2*4 数组中有 500 个观察值的合成数据:

datax = array(c(120, 181, 50, 43, 41, 33,24,8), dim=c(2,4))
dimnames(datax) = list(gender= c('male', 'female')
                    , punishment = c('None', 'Community_service', 'Youth_prison', 'Normal_prison'))
Run Code Online (Sandbox Code Playgroud)

我想data.frame从代表频率表“来源”的表中生成一个。

我可以通过“频率”列(as.data.frame(as.table(datax))也在这里)来表示它,但我想生成具有 500 行和 2 列(性别、惩罚)的 data.frame。

我将如何在 R 中做到这一点?

G. *_*eck 5

尝试这个:

long <- as.data.frame.table(datax)
longer <- long[rep(1:nrow(long), long$Freq), -3]
Run Code Online (Sandbox Code Playgroud)