从字符列中提取日期的公式<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />您好,我使用 SAS EG 和 JMP。 过去我使用 Base SAS for PC。 我对看似简单的任务在 JMP 中没有简单的解决方案感到沮丧。 现在,例如,请参阅附带的 jmp 表,其中包含一个包含字符数据的列。 我需要创建一个将日期作为数字变量的列。 在SAS我会写:
date=input(substr("第 1 列",1,10),ddmmyy10.);
但是这个新列的公式应该是什么。
很遗憾不得不问这么简单的问题,但是。 . .
提前致谢
保罗·拉文·索伦森
回复:从字符列中提取日期的公式PMroz 的示例在我的 PC 上也不起作用(JMP 9.0.3,Win XP)。 但是 MS 的 date4 公式有效。 Jeff Perkinson 提出的在表格中执行此操作的建议与在脚本中执行此操作的想法背道而驰。 我更喜欢有一个公式的“工具箱”来做这些事情,因为我不必每次有一张桌子时都记住如何去做。
谢谢大家
波尔
回复:从字符列中提取日期的公式事实证明,Informat() 的第二个参数是可选的。 没有它,JMP 将检查第一个参数并尝试自行找出格式。
在此示例中,JMP 将带点的日期识别为日期分隔符。
吨= “12.10.2012 10:22:31” ;
日期 1 =信息格式(吨) ;
展示(日期 1 ) ;
/*:
date1 = 10Dec2012:10:22:31;
回到最初的问题,我将使用格式和输入格式将列的数据类型从字符更改为数字,以自动将值转换为 JMP 日期时间值。

然后,如果您只想要日期时间值的日期部分,您可以减去一天中的时间:
:第 1 列 - 时间(:第 1 列)
-杰夫
回复:从字符列中提取日期的公式JMP 识别的日期或日期/时间格式似乎因本地化(JMP 或操作系统)而异。 例如,PMros 示例中带有“/”和“:”的格式在我的计算机上不起作用(英语 JMP10,瑞典语 Mac OS X)。
以下示例说明了一些注意事项。 第一个未被识别,而带有连字符和点的第二个按预期工作(但此处需要“双重替换”)。
第三个和第四个示例说明了潜在的日期歧义:在没有格式参数的情况下,JMP 假定 m/d/y,这可能不正确,具体取决于数据源。
处理这种日期格式混乱的最佳脚本实践是什么?
吨= “12.10.2012 10:22:31” ;
日期 1 =信息格式(代替(吨, “。” , “/” ) , “d/m/yh:m:s” ) ;
日期2 =信息格式(代替(代替(吨, “。” , “——” ) , “:” , “。” ) , “dmy hms” ) ;
日期3 =信息格式(子字符串(代替(吨, “。” , “——” ) , 1个, 10 ) , ) ;
日期4 =信息格式(子字符串(代替(吨, “。” , “——” ) , 1个, 10 ) , “dmy” ) ;
展示(日期 1 ,日期2 ,日期3 ,日期4 ) ;
/*:
日期 1 = .;
date2 = 12Oct2012:10:22:31;
日期 3 = 2012 年 12 月 10 日;
date4 = 2012 年 12 月 12 日;
回复:从字符列中提取日期的公式在公式列中使用信息格式函数。诀窍是将日期格式更改为 JMP 可识别的格式,方法是更改“ . “字符到” / ”。
dt =新表( “日期作为字符串数据” ,
添加行( 10 ) ,
新建专栏( “第一栏” ,
特点,
标称,
设置值(
{ “19.10.2012 14:26:49” , “15.10.2012 9:28:57” , “15.10.2012 9:22:13” ,
“2012 年 10 月 9 日 11:15:18” , “2012 年 10 月 9 日 11:07:14” , “2012 年 9 月 28 日 15:30:41” ,
“2012 年 9 月 28 日 13:00:18” , “2012 年 9 月 27 日 15:43:07” , “2012 年 9 月 27 日 15:42:16” ,
“2012 年 9 月 27 日 15:41:12” }
)
)
) ;
dt <<新建专栏( “第 2 栏” ,
数字,
连续的,
格式( “d/m/yh:m:s” , 22 , 0 ) ,
输入格式( “d/m/yh:m:s” , 0 ) ,
公式(
信息格式(代替( :第 1 列, “。” , “/” ) , “d/m/yh:m:s” ) ;
) ,
) ;