我有一个矩阵列表。
# Sample data
m1 <- matrix(c(5, 2, 8, 3, 10, 3), nrow = 2, ncol = 3, dimnames = list(c("Mean", "SD"), c("Apples", "Oranges", "Bananas")))
m2 <- matrix(c(4, 1, 7, 2, 9, 2), nrow = 2, ncol = 3, dimnames = list(c("Mean", "SD"), c("Apples", "Oranges", "Bananas")))
m3 <- matrix(c(6, 3, 9, 4, 11, 4), nrow = 2, ncol = 3, dimnames = list(c("Mean", "SD"), c("Apples", "Oranges", "Bananas")))
# Create a list of data frames
matrix_list <- list(m1 = m1, m2 = m2, m3 = m3)
我想将列表中的矩阵组合在一起,生成一个具有以下结构的摘要数据框。
Apples_Mean Apples_SD Oranges_Mean Oranges_SD Bananas_Mean Bananas_SD
m1 5 2 8 3 10 3
m2 4 1 7 2 9 2
m3 6 3 9 4 11 4
我该怎么做?
2条答案
按热度按时间gk7wooem1#
使用base R,可以像下面这样使用
xtabs
+Map
+as.data.frame
它给出了
5f0d552i2#
**1)**将
dn
设置为矩阵的公共dimname,然后使用它来定义所需的输出列名cn
。最后使用sapply
创建设置名称的结果。给予
**2)*另一种可能性是使用listcompr包,它提供了类似Python的列表解析。从上面使用dn,每个gen_named_ 函数的第一个参数是要使用的名称,第二个参数是值,其余参数是要迭代的索引。结果与上面相同。