全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3117 12
2017-12-19
悬赏 10 个论坛币 已解决
代码及数据如下,希望做到两个Excel同时间数据合并,但目前输出结果有些时间是可以合并,但有些却又不可,不知应该如何修改,请指教。

test.png

B.xlsx
大小:(22.87 KB)

 马上下载

A.xlsx
大小:(26.15 KB)

 马上下载



复制代码


最佳答案

roller 查看完整内容

我说了, 下面几位也说到了。原因就是:在excel里,举个例子, 你看上去是1.23 , 但说不定实际是1.229, 也可能是1.231, 只不过因为你设置的显示格式是保留两位小数, 所以看上去相同而实际不同。时间类型的数据也是如此。所以proc import 一自动导入到sas里自然就有问题了。 你可以将excel里的内容转成cvs文本, 或者实在不行就复制粘贴到sas里,用input语句加个time8.格式。 这样就不会出问题了。
二维码

扫码加我 拉你入群

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

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

全部回复
2017-12-19 00:16:16
滞点 发表于 2017-12-19 17:04
感谢您的回复,试过您说的方法了,不行啊
我说了, 下面几位也说到了。原因就是:在excel里,举个例子, 你看上去是1.23 , 但说不定实际是1.229, 也可能是1.231, 只不过因为你设置的显示格式是保留两位小数, 所以看上去相同而实际不同。时间类型的数据也是如此。所以proc import 一自动导入到sas里自然就有问题了。  

你可以将excel里的内容转成cvs文本, 或者实在不行就复制粘贴到sas里,用input语句加个time8.格式。 这样就不会出问题了。
二维码

扫码加我 拉你入群

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

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

2017-12-19 10:37:05
log 什么情况,有note 说 overwrite吗;

DATA B;
SET B;
RENAME PM_T=PM_T_;
RUN;
DATA AB;
MERGE A B(keep=time pm_t_);
BY TIME;
RUN;
二维码

扫码加我 拉你入群

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

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

2017-12-19 13:30:58
lovexialulu 发表于 2017-12-19 10:37
log 什么情况,有note 说 overwrite吗;

DATA B;
log正常,但是您修正的code运行后还是一样的问题。。
有的时间是可以合并,有的却合并不上。。
二维码

扫码加我 拉你入群

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

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

2017-12-19 13:36:07
我猜测一下原因及可行的解决方案。
问题出在, 用proc import导入excel文件这一步。也许你的原excel文件有些问题, 比如看上去是10:24:55, 但说不定后面还隐藏了小数点呢。 因为时间这一格式实质上也是数字。

解决方案:你将excel文件转成csv文件, 看看有问题的时间是否变化。 再导入后, 自己在sas里查看一下; 再按时间合并 。 应该不会存在原来的问题了。
二维码

扫码加我 拉你入群

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

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

2017-12-19 13:37:35
merge之前应该先要用proc sort把两个文件排一下序
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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