楼主: lanhong1993
921 6

[问答] 求助!!这种数据怎么处理呢? [推广有奖]

  • 1关注
  • 1粉丝

已卖:286份资源

博士生

54%

还不是VIP/贵宾

-

威望
0
论坛币
2701 个
通用积分
3.4261
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
12167 点
帖子
214
精华
0
在线时间
141 小时
注册时间
2016-11-1
最后登录
2024-3-26

楼主
lanhong1993 发表于 2017-2-6 16:16:50 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
比如我有两个数据框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/04 15:40:00           1.8
2     2016/02/05 18:44:00           2.0
2     2016/02/07 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/14 11:34: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的数量不相等,时间也不一样。如何将两个数据框合并呢?并且要删除data2中时间迟于data1中的行(针对每个id而言),也就是说,对于每一个id而言,data2中的事件都要发生在data1之前,发生在打他1之后的数据不需要。这在R中该如何实现呢?

二维码

扫码加我 拉你入群

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

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

关键词:怎么处理 outcome 数据框合并 Data Come

沙发
jiangbeilu 学生认证  发表于 2017-2-7 11:11:52
先在data1中找出,每个id最早的1个时间,
形成这样的data.frame:
id  time1 outcome1
2   ……      ……
3  ……      ……
4 ……       ……
然后用merge与data2合并,比较time1与time2列,将time2>time1的时间保留就Ok了

藤椅
lanhong1993 发表于 2017-2-7 19:35:06
jiangbeilu 发表于 2017-2-7 11:11
先在data1中找出,每个id最早的1个时间,
形成这样的data.frame:
id  time1 outcome1
time1和time2之间怎么比较呢?运行提示time1和time2是factor,两者之间用比较运算符比较没有意义。可以将time通过as.numeric()函数转化成数值型再进行比较么?但是这样的话,原本的yy-mm-dd hh:mm:ss的格式就变成了毫无意义的整数格式了,这可怎么办?

板凳
jiangbeilu 学生认证  发表于 2017-2-7 19:38:00
lanhong1993 发表于 2017-2-7 19:35
time1和time2之间怎么比较呢?运行提示time1和time2是factor,两者之间用比较运算符比较没有意义。可以将 ...
把这个factor变成时间格式的就可以比较了哈

报纸
lanhong1993 发表于 2017-2-7 19:57:00
jiangbeilu 发表于 2017-2-7 19:38
把这个factor变成时间格式的就可以比较了哈
可是转换成时间格式后,日期就只剩下年月日,时分秒就没有了呀?

地板
lanhong1993 发表于 2017-2-7 20:01:22
jiangbeilu 发表于 2017-2-7 19:38
把这个factor变成时间格式的就可以比较了哈
知道了,用as.POSIXlt()函数就可以啦!!

7
lanhong1993 发表于 2017-2-7 20:06:18
jiangbeilu 发表于 2017-2-7 19:38
把这个factor变成时间格式的就可以比较了哈
但是用as.POSIXlt()函数转换后的格式还是不能用比较运算符做比较!这可怎么办?

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

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