从数据帧列表中依次提取每一列

弗雷德塔尔

我有一个矩阵列表,每个矩阵具有相同的列数。我想创建一个单一的数据帧,矩阵1的第一列,矩阵2的第一列,矩阵3的第一列,然后矩阵1的第二列,矩阵2的第二列,依此类推。

counts <- data.frame(apples=round(rnorm(10, mean=5), digits=0),
                     oranges=round(rnorm(10, mean=5), digits=0),
                     pears=round(rnorm(10, mean=5), digits=0))
weights <- data.frame(apples=round(rnorm(10, mean=3), digits=1),
                      oranges=round(rnorm(10, mean=3), digits=1),
                      pears=round(rnorm(10, mean=3), digits=1))
diameters <- data.frame(apples=round(rnorm(10, mean=10), digits=1),
                      oranges=round(rnorm(10, mean=10), digits=1),
                      pears=round(rnorm(10, mean=10), digits=1))

fruitdata <- list(counts, weights, diameters)

> fruitdata
[[1]]
   apples oranges pears
1       4       4     4
2       6       5     5
3       6       4     6
4       6       5     4
5       7       4     5
6       6       7     5
7       4       6     5
8       4       6     5
9       4       5     5
10      5       7     5

[[2]]
   apples oranges pears
1     2.5     3.1   1.1
2     4.3     2.4   4.2
3     2.8     3.5   1.3
4     2.8     1.5   2.5
5     2.9     3.3   1.9
6     3.7     1.5   2.2
7     2.9     2.7   5.1
8     3.0     2.5   3.0
9     2.3     2.3   1.7
10    2.7     2.9   1.4

[[3]]
   apples oranges pears
1    10.5    10.4  12.3
2    10.0     9.8  10.1
3     9.7    11.1  10.5
4     9.1    10.9   9.9
5     8.5     9.4   9.7
6     8.9    12.2  10.0
7    11.0     9.7  10.8
8     9.4     8.6  12.1
9     8.6     9.9  11.0
10   11.9    10.2  11.2

我想要的是这样的东西...

      [,1] [,2] [,3] [,4] [,5] [,6]
 [1,]    4  2.5 10.5    4  3.1 10.4
 [2,]    6  4.3 10.0    5  2.4  9.8
 [3,]    6  2.8  9.7    4  3.5 11.1
 [4,]    6  2.8  9.1    5  1.5 10.9
 [5,]    7  2.9  8.5    4  3.3  9.4
 [6,]    6  3.7  8.9    7  1.5 12.2
 [7,]    4  2.9 11.0    6  2.7  9.7
 [8,]    4  3.0  9.4    6  2.5  8.6
 [9,]    4  2.3  8.6    5  2.3  9.9
[10,]    5  2.7 11.9    7  2.9 10.2

我可以使用sapply从每个矩阵中提取第一列:

test1 <- sapply(fruitdata, function(x) x[,1])

> test1
      [,1] [,2] [,3]
 [1,]    4  2.5 10.5
 [2,]    6  4.3 10.0
 [3,]    6  2.8  9.7
 [4,]    6  2.8  9.1
 [5,]    7  2.9  8.5
 [6,]    6  3.7  8.9
 [7,]    4  2.9 11.0
 [8,]    4  3.0  9.4
 [9,]    4  2.3  8.6
[10,]    5  2.7 11.9

所以我尝试了:

test2 <- sapply(fruitdata, function(x) x[,1:ncol(fruitdata[[1]])])

但这并没有给我我想要的东西。

>test2

        [,1]       [,2]       [,3]      
apples  Numeric,10 Numeric,10 Numeric,10
oranges Numeric,10 Numeric,10 Numeric,10
pears   Numeric,10 Numeric,10 Numeric,10

当然,我可以编写一个for循环来执行此任务,但似乎我应该可以使用apply或plyr套件来执行此操作,但是我不太想知道如何执行此操作。

谢谢!

布罗迪

编辑:合并了rawr的聪明建议。

这是你想要的吗?

do.call(cbind, fruitdata)[order(rep(1:3, 3))]

#    apples apples.1 apples.2 oranges oranges.1 oranges.2 pears pears.1 pears.2
# 1       4      3.2     10.1       6       4.9      10.0     4     2.6    10.8
# 2       6      4.3     10.0       4       4.2       8.4     4     3.7     9.4
# 3       5      2.9      9.4       4       4.4       8.7     5     5.5     9.2
# 4       6      2.8     12.6       6       1.9      10.4     5     1.9    11.0
# 5       8      3.6      9.5       6       3.8       9.7     4     3.7     8.9
# 6       4      4.3     10.1       4       2.3       9.7     5     4.1    10.5
# 7       5      2.1     10.2       4       3.2       8.7     6     0.9    10.6
# 8       4      4.2      9.8       7       5.0      10.0     5     2.0     9.2
# 9       4      4.1     10.5       6       1.8       8.2     6     3.2     9.1
# 10      6      2.4      9.3       5       3.1       8.6     4     3.6    10.5

在这里,我们只是将所有矩阵放在一起,然后对列进行重新排序,以使它们最终达到您的期望。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

R中数据帧列表中每一列的组合

来自分类Dev

在python中从pandas数据帧的每一列创建列表嵌套

来自分类Dev

提取数据帧中dplyr函数中列的定义范围内值不为NA的每一列的列名

来自分类Dev

从列表返回一个列表,其中每个数据帧的每一列都是字符类型

来自分类Dev

R中数据帧的每一列的第25个分位数

来自分类Dev

如何在R的数据帧的每一列中过滤NA

来自分类Dev

r中数据帧不同行的每一列的最大值

来自分类Dev

在数据帧的每一列中查找最接近零的值-R

来自分类Dev

计算和打印数据帧中每一列的零和负值

来自分类Dev

数据中每一列的ggplot

来自分类Dev

R:提取数据帧中另一列(y)至少具有+1的一列(x)的值

来自分类Dev

如何依次遍历r data.frame中的每一行,然后遍历每一列?

来自分类Dev

向数据框列表中的每一列添加列

来自分类Dev

向数据框列表中的每一列添加列

来自分类Dev

如何替换数据框中每一列中的所有列表值

来自分类Dev

如何将数据帧中每一列的数据类型存储到新数据帧的新列中

来自分类Dev

如何在R的数据框中计算列表列的每一列中的元素

来自分类Dev

将零填充到列表中所有数据帧中的一列

来自分类Dev

Purrr-有条件地突变数据帧列表中的一列

来自分类Dev

在包含超过一列的列表的数据帧组行中

来自分类Dev

提取列值并将其作为Spark数据帧中的数组分配给另一列

来自分类Dev

如何获取列表中每一列的摘要

来自分类Dev

如何提取/拆分数据框中的列表列以分隔唯一列?

来自分类Dev

使用存储在列表中的数据框名称在数据框列表的每一列和每一行上执行多种功能

来自分类Dev

汇总数据帧每一列的所有唯一值

来自分类Dev

遍历数据框列表,并删除其中的每一列和每一行

来自分类Dev

如何通过迭代组合存储在数据帧中的变量名称来构建两个字符串的列表,以便每一列中都有一个

来自分类Dev

平均数据表中的每一列

来自分类Dev

如何总结数据框中的每一列?

Related 相关文章

  1. 1

    R中数据帧列表中每一列的组合

  2. 2

    在python中从pandas数据帧的每一列创建列表嵌套

  3. 3

    提取数据帧中dplyr函数中列的定义范围内值不为NA的每一列的列名

  4. 4

    从列表返回一个列表,其中每个数据帧的每一列都是字符类型

  5. 5

    R中数据帧的每一列的第25个分位数

  6. 6

    如何在R的数据帧的每一列中过滤NA

  7. 7

    r中数据帧不同行的每一列的最大值

  8. 8

    在数据帧的每一列中查找最接近零的值-R

  9. 9

    计算和打印数据帧中每一列的零和负值

  10. 10

    数据中每一列的ggplot

  11. 11

    R:提取数据帧中另一列(y)至少具有+1的一列(x)的值

  12. 12

    如何依次遍历r data.frame中的每一行,然后遍历每一列?

  13. 13

    向数据框列表中的每一列添加列

  14. 14

    向数据框列表中的每一列添加列

  15. 15

    如何替换数据框中每一列中的所有列表值

  16. 16

    如何将数据帧中每一列的数据类型存储到新数据帧的新列中

  17. 17

    如何在R的数据框中计算列表列的每一列中的元素

  18. 18

    将零填充到列表中所有数据帧中的一列

  19. 19

    Purrr-有条件地突变数据帧列表中的一列

  20. 20

    在包含超过一列的列表的数据帧组行中

  21. 21

    提取列值并将其作为Spark数据帧中的数组分配给另一列

  22. 22

    如何获取列表中每一列的摘要

  23. 23

    如何提取/拆分数据框中的列表列以分隔唯一列?

  24. 24

    使用存储在列表中的数据框名称在数据框列表的每一列和每一行上执行多种功能

  25. 25

    汇总数据帧每一列的所有唯一值

  26. 26

    遍历数据框列表,并删除其中的每一列和每一行

  27. 27

    如何通过迭代组合存储在数据帧中的变量名称来构建两个字符串的列表,以便每一列中都有一个

  28. 28

    平均数据表中的每一列

  29. 29

    如何总结数据框中的每一列?

热门标签

归档