全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1869 3
2018-01-16
两个list A,B,根据里面数据框的variable列,匹配两个数据框的value列的值,合并成新的数据框,生成新的list只有两个数据框我会用merge,但是list里面要怎么处理呢?

A:
$`2015-01-29`
            tesd  variable     value
40847 2015-01-29 002703.SZ 3.6680556
17319 2015-01-29 600876.SH 3.0885714
8323  2015-01-29 002490.SZ 3.0711974
50535 2015-01-29 000585.SZ 2.6444444
54687 2015-01-29 601038.SH 2.5928571
61607 2015-01-29 600871.SH 2.5473251
51919 2015-01-29 601727.SH 2.3657025

$`2015-01-30`
            tesd  variable     value
40848 2015-01-30 002703.SZ 3.6255201
17320 2015-01-30 600876.SH 3.0697674
8324  2015-01-30 002490.SZ 3.0129450
50536 2015-01-30 000585.SZ 2.7277778
54688 2015-01-30 601038.SH 2.6672504
61608 2015-01-30 600871.SH 2.4379845
51920 2015-01-30 601727.SH 2.2962185

$`2015-02-02`
            tesd  variable     value
40849 2015-02-02 002703.SZ 3.5230352
8325  2015-02-02 002490.SZ 3.0803859
17321 2015-02-02 600876.SH 3.0338462
50537 2015-02-02 000585.SZ 2.7613636
54689 2015-02-02 601038.SH 2.5626168
61609 2015-02-02 600871.SH 2.5338645
65069 2015-02-02 603993.SH 2.3291667
B:

$`2015-01-05`
          adates  variable value
1     2015-01-05 002202.SZ     0
694   2015-01-05 601111.SH     0
1387  2015-01-05 600600.SH     0
2080  2015-01-05 600029.SH     0
2773  2015-01-05 600115.SH     0
3466  2015-01-05 600188.SH     0
4159  2015-01-05 000039.SZ     0
4852  2015-01-05 600660.SH     0
5545  2015-01-05 000063.SZ     0
6238  2015-01-05 601881.SH     0
6931  2015-01-05 600775.SH     0

$`2015-01-06`
          adates  variable        value
2     2015-01-06 002202.SZ  0.001386963
695   2015-01-06 601111.SH  0.040914798
1388  2015-01-06 600600.SH  0.006572794
2081  2015-01-06 600029.SH  0.017730961
2774  2015-01-06 600115.SH  0.019625964
3467  2015-01-06 600188.SH  0.063460354
4160  2015-01-06 000039.SZ -0.007722046
4853  2015-01-06 600660.SH  0.013751172
5546  2015-01-06 000063.SZ  0.056252047

$`2015-01-07`
          adates  variable        value
3     2015-01-07 002202.SZ -0.022425607
696   2015-01-07 601111.SH  0.020937404
1389  2015-01-07 600600.SH -0.014137841
2082  2015-01-07 600029.SH  0.010489607
2775  2015-01-07 600115.SH  0.014035318
3468  2015-01-07 600188.SH -0.010409983




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2018-1-16 19:17:25
先用do.call('rbind',listA)
把listA组合成一个data.frame,
再对listB如此操作,最后再用merge,
如果你还想要list形式,就用split按照条件拆分开来就好了。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-1-17 14:04:56
jiangbeilu 发表于 2018-1-16 19:17
先用do.call('rbind',listA)
把listA组合成一个data.frame,
再对listB如此操作,最后再用merge,
谢谢,但是这个方法会使这个两个基础数据框太大了,merge的效率会很低
不知道有没有其他方法呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-1-18 09:50:21
chline 发表于 2018-1-17 14:04
谢谢,但是这个方法会使这个两个基础数据框太大了,merge的效率会很低
不知道有没有其他方法呢?
那你就用dplyr里面的left_join或者data.table包里的合并函数吧。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群