楼主: lanhong1993
1606 15

[问答] 求助!!如何进行数据合并?? [推广有奖]

11
lanhong1993 发表于 2017-2-9 10:57:50
lanhong1993 发表于 2017-2-9 09:29
好的,我试试。先谢谢您啦!
不行啊,输出结果是针对data1中的每一行,联结了data2中的每一行。data1有n行,data2有m行,这样的结果是产生了一个m*n行的新数据框。

12
jameschin007 发表于 2017-2-9 13:29:47
lanhong1993 发表于 2017-2-9 10:57
不行啊,输出结果是针对data1中的每一行,联结了data2中的每一行。data1有n行,data2有m行,这样的结果是 ...
你肯定没写这句“on data1.id= data2.id”  不加这句,就是笛卡尔积。 加了就是按这个关系做关联。

13
jameschin007 发表于 2017-2-9 13:37:55
lanhong1993 发表于 2017-2-9 10:57
不行啊,输出结果是针对data1中的每一行,联结了data2中的每一行。data1有n行,data2有m行,这样的结果是 ...
我又看了一下你的数据形式。

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

都是ID2, 为什么time1 2016/02/03 14:23:00 和  time2   2016/02/03 15:28:00  组合成一条,不和其他的组合成一条? 你要把这个规则描述出来。

14
jameschin007 发表于 2017-2-9 13:37:56
lanhong1993 发表于 2017-2-9 10:57
不行啊,输出结果是针对data1中的每一行,联结了data2中的每一行。data1有n行,data2有m行,这样的结果是 ...
我又看了一下你的数据形式。

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

都是ID2, 为什么time1 2016/02/03 14:23:00 和  time2   2016/02/03 15:28:00  组合成一条,不和其他的组合成一条? 你要把这个规则描述出来。

15
不懂不装懂 发表于 2017-2-9 14:20:45
  1. library(dplyr)
  2. h<-data1%>%arrange(id,time1)%>%group_by(id)%>%mutate(no =1:n())
  3. f<-data2%>%arrange(id,time2)%>%group_by(id)%>%mutate(no =1:n())
  4. g<-full_join(h,f,by=c("id","no"))%>%select(-no)%>%arrange(id)
  5. g
复制代码

16
lanhong1993 发表于 2017-2-10 12:08:25
不懂不装懂 发表于 2017-2-9 14:20
恩恩,这正是我想要的哈哈。谢谢

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 11:58