【问题标题】:Stat/Transfer 13 SAS 9 to Stata 14 date variableStat/Transfer 13 SAS 9 到 Stata 14 日期变量
【发布时间】:2015-12-01 12:14:24
【问题描述】:

我正在尝试使用DDMMYYp10 将 sas 9 文件转换为 stata 14。在我的 sas 文件中查找日期。

Stattransfer13 正在将我的日期变量作为 intiger 而不是日期格式传输到 Stata 14。

我尝试在 stattransfer 13 中使用 date-fmt-write 选项,但没有成功。

【问题讨论】:

  • 您遇到了我们看不到的文件和专有程序的问题。除非有人熟悉类似的问题,否则这听起来像是公司技术支持的问题。
  • 我确实写了它们,因为我认为这可能是一个错误。 SAS 日期格式转换不正确。 MMDDYYp10.在Stata中转换为DDMMYYDDMMYYp10.转换为整数。不过,date11. 格式可以正常工作。
  • @NickCox StatTransfer 是程序员(在特定领域)常用的程序,所以我认为这是一个合理的问题。我不知道答案,请注意,这很可能是一个错误,但也可能是可以解决的。
  • @Joe 确实如此。 (几年前,我有执照,但这并不重要。)我没有投票关闭。我的评论基于获得该信息答案的最佳方式。
  • 这可能是 StatTransfer 读取 SAS 日期值(我相信您知道,它是 SAS 中的数值)并将其作为数字输出的问题。我刚刚使用 StatTransfer 11 进行了测试,并观察到了类似的行为。基本上,我认为 StatTransfer 无法知道某个数值应该映射到某个日期。或者,如果它以正确的信息被读入 SAS 可能会?我不知道。也许在 SAS 中将日期写成字符串并从那里开始工作。

标签: sas stata


【解决方案1】:

这是 Stata 解决方案,而不是 StatTransfer 解决方案。

SAS 将日期存储为整数,零表示 1960 年 1 月 1 日。mmddyyp10. 只是在组件之间放置句点的格式,因此 18031 在FORMAT datevar mmddyyp10.; 之后看起来像 05.14.2009(如果我记得 SAS 语法正确)。

方便地,Stata 对日期使用相同的编码约定。你只需要在Stata中format datevar %tdNN.DD.CCYY

. display %tdNN.DD.CCYY 18031
05.14.2009

【讨论】:

  • 我们现在只是在sas中使用date11.,可以通过stattransfer13正确传输。我猜它是新的 stattransfer 软件中的一个错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-04
  • 2021-05-16
  • 1970-01-01
  • 2013-06-15
  • 2015-12-13
  • 1970-01-01
  • 2014-07-20
相关资源
最近更新 更多