我必须导入一些文本文件,其中逗号 (,) 用作小数点分隔符。 我不想从英语/使用 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" mode="NONE"><LINGO-LABEL>脚本</LINGO-LABEL><LINGO-LABEL>视窗</LINGO-LABEL></LINGO-LABS><LINGO-SUB id="lingo-sub-428895" slang="en-US" mode="NONE">回复:在 JMP 16 中使用小数点分隔符导入 - 自定义区域设置不起作用</LINGO-SUB><LINGO-BODY id="lingo-body-428895" slang="en-US" mode="NONE"><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")
)
)
关键是设置 Use Regional Settings(1) 并在导入期间将列设置为数字。
似乎我发现了一个错误 - 是的,重新编码或编写脚本可以解决它,但我想以一种聪明的方式尝试它......
你好费利
我认为解决问题的最快方法是使用重新编码功能。 转到列标题,右键单击并激活“重新编码”,然后再次转到红色小三角“转换为字符”转到红色小三角“替换字符串”并将字符串更改为您想要的内容。 之后,您可以将列特征改回数字。
希望这有帮助吗?
问候
鲁
这可能是一个错误(您可以联系支持@jmp.com ),但是你能暂时用脚本解决这个问题吗? 例如,您可以将“,”替换为“.”。在特定列中,然后尝试将列转换为数字。