【问题标题】:Converting string date to Human Readable Format HRF (Stata)将字符串日期转换为人类可读格式 HRF (Stata)
【发布时间】:2018-02-12 14:02:43
【问题描述】:

版本:stata15

日期(格式 %9s),类型 8s - 20171230

date
20171230
20171230 

我希望能够看到 2017 年 12 月 30 日,

gen newdate = date(date, "YMD")
format newdate %td 
list 

这是我看到的

date       newdate 
20171230    . 

为什么我会在新的日期变量中看到缺失的数据?我在newdate %td 命令中做错了什么?

【问题讨论】:

  • 您经常忽略 cmets 和您的问题的答案。您应该 (a) 接受之前的正确答案,并 (b) 在您可以(合理地)期待进一步帮助之前回复未解决的问题。
  • 投反对票并投票结束。非常困惑和困惑。没有真正迹象表明您是专业或狂热的程序员,甚至试图以推荐的方式基于可重复的示例提供明确的问题。你应该在 Stata 中学习 help dataex(或者 search dataex,如果这不起作用),那么你应该在这里学习 stackoverflow.com/help/mcve
  • 上面的链接是在之前的评论中给你的。
  • 仍然没有使用dataex
  • 撤回关闭投票。答案是可能的,虽然我不知道为什么你会得到我无法重现的结果。

标签: date format stata


【解决方案1】:

回答原始问题:

这对我来说没有明显的意义。这样的问题也会浪费你的时间。

您没有给出明确的可重复数据示例。在最新版本的 Stata 中,help dataex 告诉您如何做到这一点。如果您使用的是旧版本的 Stata,那么您应该告诉我们。

  1. 您的第一句话似乎告诉我们您有一个字符串变量date,存储类型为str8,显示格式为%9s

  2. 如果是这样,那么tostring 毫无意义,因为您已经有了一个字符串变量。

  3. 语句gen date = date(date, "YMD") 是非法的,因为date 已经作为变量存在。如果您键入,它将无法正常工作。如果您输入了其他内容,您应该告诉我们。

  4. %td 格式应该给你一个相当可读的日期。所以,你已经回答了你自己的问题。如果您有数字日期变量,请阅读help datetime display formats 了解更多信息。

编辑以上大部分内容与真正的问题无关的事实表明您如何浪费时间不问真正的问题。

回答修改后的问题:

我无法重现您的问题。你报告了一个缺失的日期结果,显然没有一种显示格式可以理解这一点。但是 Stata 15.1 为我做到了这一点。所以,你告诉我们的有问题。也许您的 Stata 已损坏,或者与您所说的不一样。

clear 
set obs 1 
gen str8 date = "20171230"
gen newdate = daily(date, "YMD") 

list 

     +--------------------+
     |     date   newdate |
     |--------------------|
  1. | 20171230     21183 |
     +--------------------+

21183 将以%td 格式很好地显示。使用daily() 而不是date() 是无关紧要的,因为date() 会产生相同的结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-18
    • 2018-04-22
    • 1970-01-01
    • 2018-10-06
    • 2016-11-29
    • 2013-12-28
    相关资源
    最近更新 更多