[英]manipulating an array into a data.frame in BASE R
UCBAdmissions
is a BASE R dataset in the array format. UCBAdmissions
是数组格式的 BASE R 数据集。
I was wondering how I could reformat UCBAdmissions
to become a data.frame as shown in the picture below in BASE R?我想知道如何将
UCBAdmissions
重新格式化为 data.frame,如下图 BASE R 所示?
I have tried the following without success:我尝试了以下方法但没有成功:
as.data.frame.table(UCBAdmissions)
Desired data.frame output:所需的data.frame output:
After creating the dataset with as.data.frame.table
, can reshape
into 'wide' format使用
as.data.frame.table
创建数据集后,可以reshape
为“宽”格式
out <- as.data.frame.table(UCBAdmissions)
out$rn <- with(out, ave(seq_along(Admit), Admit, Gender, Dept, FUN = seq_along))
out1 <- transform(reshape(out, idvar = c("Gender", "Dept", "rn"),
direction = 'wide', timevar = 'Admit'),
applications = Freq.Admitted + Freq.Rejected)[, c(2, 1, 4:6)]
names(out1)[1:4] <- c('dept', 'applicant.gender', 'admit', 'reject')
row.names(out1) <- NULL
out1
# dept applicant.gender admit reject applications
#1 A Male 512 313 825
#2 A Female 89 19 108
#3 B Male 353 207 560
#4 B Female 17 8 25
#5 C Male 120 205 325
#6 C Female 202 391 593
#7 D Male 138 279 417
#8 D Female 131 244 375
#9 E Male 53 138 191
#10 E Female 94 299 393
#11 F Male 22 351 373
#12 F Female 24 317 341
Convert UCBAdmissions
to an ftable and then use ftable2df
from this SO answer Reshaping an array to data.frame to convert it to a data.frame.将
UCBAdmissions
转换为ftable2df
,然后使用此 SO 答案中的 ftable2df Reshaping an array to data.frame将其转换为 data.frame。 Finally compute the totals.最后计算总数。 Only base R is used.
仅使用基础 R。
transform(ftable2df(ftable(UCBAdmissions, row.vars = 3:2)),
Applications = Admitted + Rejected)
giving:给予:
Dept Gender Admitted Rejected Applications
1 A Male 512 313 825
2 A Female 89 19 108
3 B Male 353 207 560
4 B Female 17 8 25
5 C Male 120 205 325
6 C Female 202 391 593
7 D Male 138 279 417
8 D Female 131 244 375
9 E Male 53 138 191
10 E Female 94 299 393
11 F Male 22 351 373
12 F Female 24 317 341
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.