假设我有下表。
> 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个值Admitted
,Male
和Dept
。
我正在考虑使用许多rep
和rbind
,但似乎无效。还有更好的办法吗?
答案 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