r - 将数组操作为 BASE R 中的 data.frame

标签 r arrays dataframe

UCBAdmissions 是数组格式的 BASE R 数据集。

我想知道如何在 BASE R 中将 UCBAdmissions 重新格式化为如下图所示的 data.frame?

我已经尝试了以下但没有成功:

as.data.frame.table(UCBAdmissions)

所需的 data.frame 输出:

enter image description here

最佳答案

使用as.data.frame.table创建数据集后,可以reshape为'wide'格式

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

关于r - 将数组操作为 BASE R 中的 data.frame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61333663/

相关文章:

sql-server - 在 sql-server-2016 的输出表中保留来自 data.frame 的列名

javascript - 如何使用另一个数组更新 MongoDB 集合中的数组但仅更新更改的值?

dataframe - Pyspark 数据帧比较

r - 如何将函数应用于 data.table 的行子集,其中每次调用都返回一个 data.table

r - 如何在sf R包中按组测量空间点之间的距离

R CMD 检查 : no visible binding for global variable (when using a data/dataset in the package)

javascript - 如何使用 lodash 或不使用 lodash 按特定值从嵌套 JSON 创建键数组?

php - 从两个相似的 MySQL 结果集创建数组时行为不一致

python - Pandas 数据框 - 运行总和并重置

Python Pandas - 通过将标签与列匹配来将一个数据框的值添加到另一个数据框中