我正在尝试基于日期和时间合并两个数据集。
在这两个集合中,日期都是date9。格式,时间为time5。格式。
我认为像下面这样的简单合并就足够了。
我猜SAS将日期读取为日期时间,将时间读取为秒。
data test;
merge JRA_UK_July_spot (in=a)
UK_surveys_30plus (in=b);
by date time_num;
if a and b;
run;我在合并表中没有得到任何记录。
注意:从数据集WORK.JRA_UK_JULY_SPOT读取了19517个观察值。注意:从数据集WORK.UK_SURVEYS_30PLUS读取了114235个观察值。注意:数据集WORK.TEST有0个观察值和14个变量。
我知道有些记录应该是匹配的。
来自表A
time_num date
9:07 01JUL2014
9:07 01JUL2014来自表b
date time_num
01JUL2014 9:07
01JUL2014 9:07
01JUL2014 9:07会不会与日期/时间的存储方式有关?例如,9:07可能是9:07:34,而这不是与可能是9:07:11的另一个匹配的内容?
发布于 2014-10-10 00:21:33
这里的困难在于,时间不仅被读取为小时和分钟,还被读取为秒-即使这不是以格式显示的。
为了解决这个问题,我简单地使用round函数将sas时间四舍五入到最近的60 (即最近的分钟);
time_round=round(put(time_num, best12.), 60);然后我合并了time_round (这是午夜后的休闲时间,例如5940)
这样做解决了上面的合并问题。
https://stackoverflow.com/questions/26275015
复制相似问题