arrays - 将多维数组转换为因子数据框

标签 arrays r dataframe transform

我有一个来自tapply函数的结果,该函数创建一个数组(包含模块名称、动物名称(行)和测试天(列)),如下所示

,, module1
     [,D1] [,D2] [,D3] [,D4]
[A1,]    1    3    2    1
[A2,]    2    1    3    2

,, module3
     [,D1] [,D2] [,D3] [,D4]
[A1,]    1    3    2    1
[A2,]    2    1    3    2

,, module3
     [,D1] [,D2] [,D3] [,D4]
[A1,]    1    3    2    1
[A2,]    2    1    3    2

我想将其转换为一个数据框架,其中模块名称和维度名称是数据框架中的因素,如下所示:

Module1  D1  A1  1
Module1  D1  A2  2 
Module1  
..
Module3  D4  A1  1
Module3  D4  A2  2
etc

然后我可以将其用于 ggplot 和其他函数。 是否有一个封装/函数可以让我做到这一点?

最佳答案

这是使用 plyrreshape2 的一种方法:

adply(a, 3, function(x) melt(cbind(names=rownames(x), as.data.frame(x))))
#         X1 names variable value
# 1  module1    A1       D1     1
# 2  module1    A2       D1     2
# 3  module1    A1       D2     3
# 4  module1    A2       D2     1
# 5  module1    A1       D3     2
# 6  module1    A2       D3     3
# 7  module1    A1       D4     1
# 8  module1    A2       D4     2
# 9  module2    A1       D1     1
# 10 module2    A2       D1     2
# 11 module2    A1       D2     3
# 12 module2    A2       D2     1
# 13 module2    A1       D3     2
# 14 module2    A2       D3     3
# 15 module2    A1       D4     1
# 16 module2    A2       D4     2
# 17 module3    A1       D1     1
# 18 module3    A2       D1     2
# 19 module3    A1       D2     3
# 20 module3    A2       D2     1
# 21 module3    A1       D3     2
# 22 module3    A2       D3     3
# 23 module3    A1       D4     1
# 24 module3    A2       D4     2

关于arrays - 将多维数组转换为因子数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16076899/

相关文章:

arrays - 在 JSON 上循环时 "TypeError: Cannot read property ' 名称 ' of undefined"

.net - VB.NET 空字符串数组

java - 计算字符串中小写字母的数量并以直方图的形式打印出它们的出现次数?

r - 在 R 中围绕统计测试编写函数

R barplot 旁边和堆叠

r - 如何分析完整的 R flexdashboard 应用程序以查看哪些内容可能占用最多的时间/内存?

Pandas: Grouped DataFrame - 将列的值除以每组该列中特定行的值

php - 使用php将关联数组插入mysql

python - 使用 loc 对 Pandas DataFrame 进行选择性操作,而不覆盖未选定的行

python - "TypeError: ' DataFrame ' object is not callable "用于 Excel 数据