从spss导入r和spss导入sas时数据不匹配

从spss导入r和spss导入sas时数据不匹配,r,sas,spss,R,Sas,Spss,我一直在尝试将spss(.sav)文件导入r和sas并匹配数据。日期变量的数量很大,所以我在R.I.中转换它。我得到了日期和时间变量的差异。sas中缺少在r中显示开始日期的记录之一。所有时间戳r为12.00.00,sas为00.00.00。谁能帮我找出哪里弄错了吗 这是我在R中使用的代码: library("memisc") data<-as.data.set(spss.system.file('aa.sav')) library("chron") data$formdate<-as

我一直在尝试将spss(.sav)文件导入r和sas并匹配数据。日期变量的数量很大,所以我在R.I.中转换它。我得到了日期和时间变量的差异。sas中缺少在r中显示开始日期的记录之一。所有时间戳r为12.00.00,sas为00.00.00。谁能帮我找出哪里弄错了吗

这是我在R中使用的代码:

library("memisc")
data<-as.data.set(spss.system.file('aa.sav'))
library("chron")
data$formdate<-as.chron(ISOdate(1582, 10, 14) + data$formdate)
data$randdate<-as.chron(ISOdate(1582, 10, 14) + data$randdate)
data$med1start<-as.chron(ISOdate(1582, 10, 14) + data$med1start)
data$med1end<-as.chron(ISOdate(1582, 10, 14) + data$med1end)
data
要查看R和SAS上的数据是如何显示的,请遵循以下步骤
任何帮助都将不胜感激。谢谢。

SAS中的日期时间是正确的。SPSS数字表示自1582年10月14日午夜以来的秒数。R向值中添加12小时的原因是可选的
hour
参数的默认值为
12

ISOdate(年、月、日、小时=12,分钟=0,秒=0,tz=“GMT”)


如果您使用ISOdate(1582,10,14,0)来代替,您应该会得到正确的答案。

您认为哪个时间戳是正确的-12:00还是00:00?您可能需要展示一些示例-它在SPSS中显示了什么,基本数字是多少(通常是自[某个日期]起的秒数)?我不确定,因为我没有SPSS。但我认为00.00时间戳是正确的。基本数字看起来像13558320000请以可读的方式将其编辑到问题中(不要在链接后面)。仅举几个例子就足够了。关于SAS中缺少的值,SAS日志中是否有任何可能指示“无效”数据的警告?否日志是干净的,它表示数据集已成功创建。没有警告或错误。谢谢,这很有意义。如果你意识到这个问题,你能澄清为什么sas会遗漏这个吗?我认为更奇怪的是,为什么R会将其作为默认值,就个人而言。我的猜测是,这与朱利安和格里高利的差异有关(朱利安日期的零点是中午,而不是午夜),但谁知道呢。当一个日期转换为datetime时,可能它只是选择了平均值(12:00是半天)而不是原点(0:00,就像SAS那样)。
proc import datafile="C:\ofc\aa.sav" out=mydata dbms = sav replace;
run;