如何合并R中包含列表值的2个不同数据框

米扎尼奇

我有两组列表(OSC_LW和SCnFO),其中的str()如下:

> str(OSC_LW)
List of 72
$ 1008/1009          :'data.frame':    8 obs. of  4 variables:
..$ StockCode : Factor w/ 8 levels "CMB00011","IFP00001",..: 1 2 3 7 4 5 6 8
..$ Opening_LW: int [1:8] 29 18 15 21 1 3 5 3
..$ Sales_LW  : int [1:8] 5 17 3 11 0 1 1 3
..$ Closing_LW: int [1:8] 24 1 12 10 1 2 4 0
$ 1012/1013          :'data.frame':    8 obs. of  4 variables:
..$ StockCode : Factor w/ 8 levels "CMB00011","IFP00001",..: 1 2 3 7 4 5 6 8
..$ Opening_LW: int [1:8] 18 23 14 11 1 3 4 5
..$ Sales_LW  : int [1:8] 12 16 13 9 1 0 1 0
..$ Closing_LW: int [1:8] 6 7 1 2 0 3 3 5
$ 1016/1017          :'data.frame':    8 obs. of  4 variables:
..$ StockCode : Factor w/ 8 levels "CMB00011","IFP00001",..: 1 2 3 7 4 5 6 8
..$ Opening_LW: int [1:8] 20 25 15 18 1 4 4 4
..$ Sales_LW  : int [1:8] 12 22 14 16 1 2 2 4
..$ Closing_LW: int [1:8] 8 3 1 2 0 2 2 0

> str(SCnFO)
List of 72
$ 1008/1009          :'data.frame':    8 obs. of  2 variables:
..$ StockCode: Factor w/ 8 levels "CMB00011","IFP00001",..: 1 2 3 7 4 5 6 8
..$ Opening_T: num [1:8] 5 17 3 11 1 1 1 4
$ 1012/1013          :'data.frame':    8 obs. of  2 variables:
..$ StockCode: Factor w/ 8 levels "CMB00011","IFP00001",..: 1 2 3 7 4 5 6 8
..$ Opening_T: num [1:8] 12 16 13 9 2 1 1 1
$ 1016/1017          :'data.frame':    8 obs. of  2 variables:
..$ StockCode: Factor w/ 8 levels "CMB00011","IFP00001",..: 1 2 3 7 4 5 6 8
..$ Opening_T: num [1:8] 12 22 14 16 2 2 2 5

为了使那些想要尝试的人可以复制它,我用下面的代码重新创建了我的数据(只是我原始数据的一部分,其中我的原始数据包含72个清单):

OSC_LW

{
`1008/1009`<-data.frame(
    StockCode=c('CMB00011','IFP00001','IFP00003','IFP00046','IFP00016','IFP00033','IFP00042','IFP00047'),
    Opening_LW=c('29','18','15','21','1','3','5','3'),
    Sales_LW=c('5','17','3','11','0','1','1','3'),
    Closing_LW=c('24','1','12','10','1','2','4','0'))

`1012/1013`<-data.frame(
    StockCode=c('CMB00011','IFP00001','IFP00003','IFP00046','IFP00016','IFP00033','IFP00042','IFP00047'),
    Opening_LW=c('18','23','14','11','1','3','4','5'),
    Sales_LW=c('12','16','13','9','1','0','1','0'),
    Closing_LW=c('6','7','1','2','0','3','3','5'))

`1016/1017`<-data.frame(
    StockCode=c('CMB00011','IFP00001','IFP00003','IFP00046','IFP00016','IFP00033','IFP00042','IFP00047'),
    Opening_LW=c('20','25','15','18','1','4','4','4'),
    Sales_LW=c('12','22','14','16','1','2','2','4'),
    Closing_LW=c('8','3','1','2','0','2','2','0'))

OSC_LW<-list(`1008/1009`=`1008/1009`,`1012/1013`=`1012/1013`,`1016/1017`=`1016/1017`)
OSC_LW
}

特种部队

{
`1008/1009`<-data.frame(
    StockCode=c('CMB00011','IFP00001','IFP00003','IFP00046','IFP00016','IFP00033','IFP00042','IFP00047'),
    Opening_T=c('5','17','3','11','1','1','1','4'))

`1012/1013`<-data.frame(
    StockCode=c('CMB00011','IFP00001','IFP00003','IFP00046','IFP00016','IFP00033','IFP00042','IFP00047'),
    Opening_T=c('12','16','13','9','2','1','1','1'))

`1016/1017`<-data.frame(
    StockCode=c('CMB00011','IFP00001','IFP00003','IFP00046','IFP00016','IFP00033','IFP00042','IFP00047'),
    Opening_T=c('12','22','14','16','2','2','2','5'))

SCnFO<-list(`1008/1009`=`1008/1009`,`1012/1013`=`1012/1013`,`1016/1017`=`1016/1017`)
SCnFO
}

我要执行的操作是通过“ StockCode”合并这两个数据(OSC_LW和SCnFO),然后将结果返回到列表中。

谁能帮助我。先感谢您。

罗兰

首先将列表中的所有data.frame合并为一个data.frame:

for (i in seq_along(OSC_LW)) {
  OSC_LW[[i]]$id <- names(OSC_LW)[i]
}
OSC_LW <- do.call(rbind, OSC_LW)

for (i in seq_along(SCnFO)) {
  SCnFO[[i]]$id <- names(SCnFO)[i]
}
SCnFO <- do.call(rbind, SCnFO)

现在,您可以轻松合并:

merge(OSC_LW, SCnFO, by=c("id", "StockCode"))

#           id StockCode Opening_LW Sales_LW Closing_LW Opening_T
# 1  1008/1009  CMB00011         29        5         24         5
# 2  1008/1009  IFP00001         18       17          1        17
# 3  1008/1009  IFP00003         15        3         12         3
# 4  1008/1009  IFP00016          1        0          1         1
# 5  1008/1009  IFP00033          3        1          2         1
# 6  1008/1009  IFP00042          5        1          4         1
# 7  1008/1009  IFP00046         21       11         10        11
# 8  1008/1009  IFP00047          3        3          0         4
# 9  1012/1013  CMB00011         18       12          6        12
# 10 1012/1013  IFP00001         23       16          7        16
# 11 1012/1013  IFP00003         14       13          1        13
# 12 1012/1013  IFP00016          1        1          0         2
# 13 1012/1013  IFP00033          3        0          3         1
# 14 1012/1013  IFP00042          4        1          3         1
# 15 1012/1013  IFP00046         11        9          2         9
# 16 1012/1013  IFP00047          5        0          5         1
# 17 1016/1017  CMB00011         20       12          8        12
# 18 1016/1017  IFP00001         25       22          3        22
# 19 1016/1017  IFP00003         15       14          1        14
# 20 1016/1017  IFP00016          1        1          0         2
# 21 1016/1017  IFP00033          4        2          2         2
# 22 1016/1017  IFP00042          4        2          2         2
# 23 1016/1017  IFP00046         18       16          2        16
# 24 1016/1017  IFP00047          4        4          0         5

如果必须(为什么?),可以再次拆分结果。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在R的数据框中合并两个列表

来自分类Dev

如何合并列表[R]中包含的不同大小的数据帧的元素?

来自分类Dev

合并包含列表的数据框列

来自分类Dev

在包含列表的数据框中搜索值

来自分类Dev

如何合并2个数据框以填充R中的缺失值?

来自分类Dev

如何在python中合并两个不同长度的数据框

来自分类Dev

如何访问另一个数据框中的列表/数据框值

来自分类Dev

如何在两个不同列表中包含的基于数据框的值中创建新列?

来自分类Dev

在R中,如何过滤数据框以仅包括具有> = 2个非NA值的行?

来自分类Dev

如何在2个包含列表且大小不同的pandas数据框中交换行?

来自分类Dev

合并不同列表中的多个数据框

来自分类Dev

合并2个数据框并创建相对于几列的值列表

来自分类Dev

合并2个列表中的数据

来自分类Dev

R:根据跨三个不同列的映射值合并两个数据框

来自分类Dev

合并2个数据框并更新R中的列值

来自分类Dev

如何合并2个熊猫数据框?

来自分类Dev

Python(Pandas)如何以递增顺序合并2个具有不同日期的数据框?

来自分类Dev

将数据框合并到两个不同的列表中,这些列表以R中的元素名称为关键字

来自分类Dev

在熊猫中合并具有不同列的2个数据框

来自分类Dev

如何重命名R中不同数据框中不同列中的观测值?

来自分类Dev

如何在python中合并两个不同长度的数据框

来自分类Dev

如何合并数据框列中的值

来自分类Dev

合并数据框中具有不同值的多行

来自分类Dev

将R中的两个列表合并到一个数据框中

来自分类Dev

如何从R中2个不同的csv文件中合并数据?

来自分类Dev

如何在EXCEL中合并2个数据列表

来自分类Dev

如果变量中的值不同,则合并数据框

来自分类Dev

如何合并2个数据框?

来自分类Dev

如何从两个单独的数据框列表中合并熊猫数据框

Related 相关文章

  1. 1

    在R的数据框中合并两个列表

  2. 2

    如何合并列表[R]中包含的不同大小的数据帧的元素?

  3. 3

    合并包含列表的数据框列

  4. 4

    在包含列表的数据框中搜索值

  5. 5

    如何合并2个数据框以填充R中的缺失值?

  6. 6

    如何在python中合并两个不同长度的数据框

  7. 7

    如何访问另一个数据框中的列表/数据框值

  8. 8

    如何在两个不同列表中包含的基于数据框的值中创建新列?

  9. 9

    在R中,如何过滤数据框以仅包括具有> = 2个非NA值的行?

  10. 10

    如何在2个包含列表且大小不同的pandas数据框中交换行?

  11. 11

    合并不同列表中的多个数据框

  12. 12

    合并2个数据框并创建相对于几列的值列表

  13. 13

    合并2个列表中的数据

  14. 14

    R:根据跨三个不同列的映射值合并两个数据框

  15. 15

    合并2个数据框并更新R中的列值

  16. 16

    如何合并2个熊猫数据框?

  17. 17

    Python(Pandas)如何以递增顺序合并2个具有不同日期的数据框?

  18. 18

    将数据框合并到两个不同的列表中,这些列表以R中的元素名称为关键字

  19. 19

    在熊猫中合并具有不同列的2个数据框

  20. 20

    如何重命名R中不同数据框中不同列中的观测值?

  21. 21

    如何在python中合并两个不同长度的数据框

  22. 22

    如何合并数据框列中的值

  23. 23

    合并数据框中具有不同值的多行

  24. 24

    将R中的两个列表合并到一个数据框中

  25. 25

    如何从R中2个不同的csv文件中合并数据?

  26. 26

    如何在EXCEL中合并2个数据列表

  27. 27

    如果变量中的值不同,则合并数据框

  28. 28

    如何合并2个数据框?

  29. 29

    如何从两个单独的数据框列表中合并熊猫数据框

热门标签

归档