我必須導入一些文本文件,其中逗號 (,) 用作小數點分隔符。 我不想從英語/使用 JMP 設置更改我的設置,否則我的其他導入和腳本將停止工作,所以我想我會嘗試 JMP 16.1 中的新功能(在 JMP 中獲取和設置顯示語言的 JSL 命令) 那@Jeff_Perkinson提及。
所以我開始構建我的小腳本:
</CODE></P><PRE><CODE class=" language-jsl">Get Preferences( Custom Locale Settings );
Preferences( Custom Locale Settings( Decimal Separator(",") ) );
Open(
"myfile",
columns(
...
),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Other( "0x3b" ), CSV( 0 ) ),
Strip Quotes( 1 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 0 ),
Column Names Start( 1 ),
Data Starts( 1 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
);
</CODE></P><P>但是什麼也沒有發生 - 逗號不會被識別為小數分隔符,並且數字列被導入為字符列,這完全不是我想要的。</P><P>所以有什麼幫助嗎? 我的導入設置是否有問題(我沒有更改任何標準首選項,只是使用分號作為字段分隔符的結尾)或者我是否發現了錯誤?</P><P>我的 JMP 版本是 16.1,如果有幫助的話,我使用 Windows 版本。</P></LINGO-BODY><LINGO-LABS id="lingo-labs-411484" slang="en-US"><LINGO-LABEL>腳本編寫</LINGO-LABEL><LINGO-LABEL>視窗</LINGO-LABEL></LINGO-LABS><LINGO-SUB id="lingo-sub-412622" slang="en-US">回复:在 JMP 16 中使用小數分隔符逗號導入 - 自定義區域設置不起作用</LINGO-SUB><LINGO-BODY id="lingo-body-412622" slang="en-US"><P>你好菲力</P><P>我認為解決您的問題的禁食方法是使用重新編碼功能。 轉到列標題,右鍵單擊並激活“重新編碼”,然後轉到紅色三角形“轉換為字符”再次轉到紅色三角形“替換字符串”並將字符串更改為您想要的。 之後,您可以將列字符改回數字。</P><P>希望這有幫助嗎?</P><P> </P><P>問候</P><P> </P><P>魯</P></LINGO-BODY><LINGO-SUB id="lingo-sub-426293" slang="en-US">回复:在 JMP 16 中使用小數點分隔符逗號導入 - 自定義區域設置不起作用</LINGO-SUB><LINGO-BODY id="lingo-body-426293" slang="en-US"><P>似乎我發現了一個錯誤 - 是的,重新編碼或編寫腳本可以解決它,但我想以一種聰明的方式嘗試它......</P></LINGO-BODY><LINGO-SUB id="lingo-sub-428895" slang="en-US">回复:在 JMP 16 中使用小數分隔符逗號導入 - 自定義區域設置不起作用</LINGO-SUB><LINGO-BODY id="lingo-body-428895" slang="en-US"><P>在與 JMP 支持人員交談後,我們找到了這個解決方案:</P><PRE><CODE class="">Preferences( Custom Locale Settings( Decimal Separator(",") ) );
Open(
"/C:/Temp/test_import.csv",
columns(
New Column("Number", Numeric, "Continuous", Format("Best", 12)),
New Column("Number2", Numeric, "Continuous")
),
Import Settings(
End Of Line(CRLF, CR, LF),
End Of Field(Other(";"), CSV(0)),
Strip Quotes(1),
Use Apostrophe as Quotation Mark(0),
Use Regional Settings(1),
Scan Whole File(1),
Treat empty columns as numeric(0),
CompressNumericColumns(0),
CompressCharacterColumns(0),
CompressAllowListCheck(0),
Labels(1),
Column Names Start(1),
Data Starts(2),
Lines To Read("All"),
Year Rule("20xx")
)
)
關鍵是設置使用區域設置(1)並在導入期間將列設置為數字。
這可能是一個錯誤(您可以聯繫support@jmp.com ),但你能暫時擺脫這種情況嗎? 例如,您可以將“,”替換為“。”在特定列中,然後嘗試將列轉換為數字。