全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
964 4
2017-02-08
比如我有两个数据框data1如下:
id          time1                        outcome1      
2     2016/02/03 14:23:00           78            
2     2016/02/03 15:24:00           89
2     2016/02/03 18:44:00           90
2     2016/02/04 08:23:00           77
2     2016/02/04 12:33:00           100
2     2016/02/05 09:12:00           108
2     2016/02/06 14:25:00           103
3     2016/03/12 13:26:00           100           
3     2016/03/12 15:35:00           99
3     2016/03/13 17:46:00           98
4     2016/03/03 16:23:00           109           
4     2016/03/03 19:55:00           95
4     2016/03/04 20:25:00           93
4     2016/03/04 14:23:00           87
4     2016/03/04 17:20:00           113
5     2016/02/08 14:23:00           106           
5     2016/02/08 15:24:00           80

...           ...                   ...           ...
数据框data2如下:
id          time2                         outcome2      
2     2016/02/03 15:28:00           1.3            
2     2016/02/03 15:40:00           1.8
2     2016/02/03 18:44:00           2.0
2     2016/02/04 08:23:00           2.1
3     2016/02/04 12:33:00           2.1
3     2016/02/05 09:12:00           1.2
3     2016/02/06 14:25:00           1.1
3     2016/03/12 13:26:00           0.9           
3     2016/03/12 15:35:00           1.4
3     2016/03/13 17:46:00           1.3
4     2016/03/03 16:23:00           1.8           
4     2016/03/03 19:55:00           2.3
4     2016/03/04 20:25:00           2.3
5     2016/03/04 14:23:00           1.2
5     2016/03/04 17:20:00           1.0
5     2016/02/08 14:23:00           2.6           
5     2016/02/08 15:24:00           2.2

...           ...                   ...           ...

其中,两个数据框中每个id的数量不相等,如何将两个数据框合并成如下形式呢?

id             time1              outcome1              time2               outcome2
2   2016/02/03 14:23:00     78       2016/02/03 15:28:00           1.3     
2   2016/02/03 15:24:00     89       2016/02/03 15:40:00           1.8
2   2016/02/03 18:44:00     90       2016/02/03 18:44:00           2.0
2   2016/02/04 08:23:00     77       2016/02/04 08:23:00           2.1
2   2016/02/04 12:33:00     100      NA                                        NA
2   2016/02/05 09:12:00     108      NA                                        NA
2   2016/02/06 14:25:00     103      NA                                        NA
3   2016/03/12 13:26:00     100      2016/02/04 12:33:00           2.1     
3   2016/03/12 15:35:00     99       2016/02/05 09:12:00           1.2
3   2016/03/13 17:46:00     98       2016/02/06 14:25:00           1.1
3   NA                                   NA       2016/03/12 13:26:00           0.9   
3   NA                                   NA       2016/03/12 15:35:00           1.4
3   NA                                   NA       2016/03/13 17:46:00           1.3
4   2016/03/03 16:23:00     109      2016/03/03 16:23:00           1.8      
4   2016/03/03 19:55:00     95       2016/03/03 19:55:00           2.3
4   2016/03/04 20:25:00     93       2016/03/04 20:25:00           2.3
4   2016/03/04 14:23:00     87        NA                                        NA
4   2016/03/04 17:20:00     113      NA                                        NA
5   2016/02/08 14:23:00     106      2016/03/04 14:23:00           1.2
5   2016/02/08 15:24:00     80        2016/03/04 17:20:00           1.0
5   NA                                   NA       2016/02/08 14:23:00           2.6   
5   NA                                   NA       2016/02/08 15:24:00           2.2

...           ...                   ...           ...




二维码

扫码加我 拉你入群

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

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

全部回复
2017-2-9 22:14:52
现在的我只能用EXCEL表实现

VLOOKUP()函数的说。。。
二维码

扫码加我 拉你入群

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

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

2017-2-9 23:31:53
复制代码
What I understood is that you were asking for "cbind" type of operation instead of "merge" although the sequence of records should be retained. I just added a help column "seq" to keep the sequence of both datasets, which was then used as (one of) the merging variables.

二维码

扫码加我 拉你入群

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

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

2017-2-9 23:43:49
提供个思路,按id生成一个辅助列,data1为a3,data2为b3,这个辅助列不知道R怎么实现,希望有大神指导
data1
a1 a2 a3
2 81  1
2 23  2
2 32  3
3 45  1
3 32  2
data2
b1 b2 b3
2 23  1
2 43  2
3 34  1
复制代码

运行结果如下:
  a1 a2 a3 b2
1  2 81  1 23
2  2 23  2 43
3  2 32  3 NA
4  3 45  1 34
5  3 32  2 NA
借用楼上大神的代码
复制代码


二维码

扫码加我 拉你入群

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

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

2017-2-10 12:10:32
小朝 发表于 2017-2-9 23:43
提供个思路,按id生成一个辅助列,data1为a3,data2为b3,这个辅助列不知道R怎么实现,希望有大神指导
dat ...
恩恩,已经解决啦谢谢
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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