我在 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 中做到这一点?
尝试这个:
long <- as.data.frame.table(datax)
longer <- long[rep(1:nrow(long), long$Freq), -3]
Run Code Online (Sandbox Code Playgroud)