從字符列中提取日期的公式<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” ) ;
) ,
) ;