Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在BASE R中将数组处理为data.frame_R_Arrays_Dataframe - Fatal编程技术网

在BASE R中将数组处理为data.frame

在BASE R中将数组处理为data.frame,r,arrays,dataframe,R,Arrays,Dataframe,UCBAdmissions是数组格式的基本R数据集 我想知道如何将UCBAdmissions重新格式化为data.frame,如下图所示,以R为底 我尝试了以下方法,但没有成功: as.data.frame.table(UCBAdmissions) 所需数据帧输出: 使用as.data.frame.table创建数据集后,可以将重塑为“宽”格式 out <- as.data.frame.table(UCBAdmissions) out$rn <- with(out, ave(seq

UCBAdmissions
是数组格式的基本R数据集

我想知道如何将
UCBAdmissions
重新格式化为data.frame,如下图所示,以R为底

我尝试了以下方法,但没有成功:

as.data.frame.table(UCBAdmissions)
所需数据帧输出:


使用
as.data.frame.table
创建数据集后,可以
重塑为“宽”格式

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

out将
ucbad任务
转换为ftable,然后在此答案中使用
ftable2df
将其转换为data.frame。最后计算总数。仅使用基本R

transform(ftable2df(ftable(UCBAdmissions, row.vars = 3:2)), 
  Applications = Admitted + Rejected)
给予:

   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

@你可以做到的。我只是在想有重复,必须用
ave