如何从聚合表中扩展数据框

时间:2016-12-07 19:01:01

标签: r dataframe

假设我有下表。

> as.data.frame(UCBAdmissions)
      Admit Gender Dept Freq
1  Admitted   Male    A  512
2  Rejected   Male    A  313
3  Admitted Female    A   89
4  Rejected Female    A   19
5  Admitted   Male    B  353
6  Rejected   Male    B  207
7  Admitted Female    B   17
8  Rejected Female    B    8
9  Admitted   Male    C  120
10 Rejected   Male    C  205
11 Admitted Female    C  202
12 Rejected Female    C  391
13 Admitted   Male    D  138
14 Rejected   Male    D  279
15 Admitted Female    D  131
16 Rejected Female    D  244
17 Admitted   Male    E   53
18 Rejected   Male    E  138
19 Admitted Female    E   94
20 Rejected Female    E  299
21 Admitted   Male    F   22
22 Rejected   Male    F  351
23 Admitted Female    F   24
24 Rejected Female    F  317

如何扩展它们? 展开表示我希望在频率计数之前拥有所有原始行。例如,聚合表中的第一行将扩展为512行。它们都具有相同的3个值AdmittedMaleDept

我正在考虑使用许多reprbind,但似乎无效。还有更好的办法吗?

1 个答案:

答案 0 :(得分:2)

我们可以生成复制索引ind

dat <- as.data.frame(UCBAdmissions)
ind <- rep.int(1:nrow(dat), dat$Freq)

然后我们可以使用此dat复制ind行:

dat[ind, 1:3]  ## you want the first 3 columns