大家好,
很多时候,我打开一个 csv 文件,其中有一列包含日期。 每隔一段时间,当我打开 csv 文件时,JMP 会将其作为字符打开。 当我尝试将其转换为最新版本时,该列的绝大多数行都被删除(空)。 知道为什么会发生这种情况吗?
提前致谢!
我只是猜测...如果这不是答案,您将需要技术支持。 我假设您使用的是 Windows,Mac 可能也有类似的东西。 JMP 可能正在使用本地化设置,并且某些内容有所不同(也许是语言。)
windows localization settingswindows localization settingsWindows 本地化设置
再一次问好,
JMP 使用的任何程序是否可能影响文件的导入? 我已经使用了您的解决方案,它可以在多台计算机上运行,但有 1 台计算机在打开位于共享驱动器上的完全相同的 csv 文件时出现以下错误:
导入这些列时遇到无效数据:MeasurementDate、Other_date。
尝试再次导入数据,但将这些列的数据类型明确设置为字符。
我们都使用 JMP12,并尝试将他计算机上的“文本数据文件”设置与我的设置相匹配,还尝试恢复默认设置。
有什么建议么?
先谢谢了!。
需要告知 JMP 使用哪种日期格式。 如果文件以明确为 d/m/y 而不是 m/d/y 的日期 (13/12/2019) 开头,则 JMP 会正确猜测 d/m/y。 但是,当文件以不明确的日期 (11/10/2019) 开头时,JMP 会猜测 m/d/y,然后必须处理无法转换的后续值。 你应该总是如果使用 d/m/y,请指定格式。 您可以在脚本中执行此操作:
Open(
"E:\BadDates.csv",
columns(
New Column( "lot", Character, "Nominal" ),
New Column( "WaferID3", Numeric, "Continuous", Format( "Best", 12 ) ),
New Column( "MeasurementDate", Numeric, "Continuous", Format( "d/m/y h:m", 19 ), Input Format( "d/m/y h:m" ) ),
New Column( "Other_date", Numeric, "Continuous", Format( "d/m/y h:m", 19 ), Input Format( "d/m/y h:m" ) )
),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Comma, 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( 1 ),
Column Names Start( 1 ),
Data Starts( 2 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
)
我使用导入向导指定日期格式,然后复制来源来自导入表的脚本。
您还可以通过(同时执行这两项操作!)将字符更改为数字并更改为正确的日期格式来转换列对话框中的字符列。
但是你真的导入d/m/y这一列时需要指定日期格式,避免出现所有日期不明确而被假定为m/d/y的情况;在这种情况下,JMP 将无法告诉您有任何问题,但内部日期值将切换月份和日期...导致日期排序不正确,等等。
你能分享一个成功的约会和失败的约会的例子吗? 如果 JMP 猜测 mmddyyyy 与 ddmmyyyy 并出错,则大量日期将变成缺失值(13 至 31 个月)。 您可以告诉 JMP 使用什么格式(在预览向导中最简单),然后使用该脚本进行将来的导入。 当您获取字符列时,JMP 发现一些信息表明该列不全是 JMP 识别的一种格式。 您应该指定正确的格式同时您从字符转换为数字。
所有值都与所选格式一致吗? 除了日期之外还有其他值吗?
谢谢,但是当我这样做时,我丢失了该列的绝大多数数据。 知道为什么吗?
选择数据列,然后选择列 > 列信息。 将数据类型更改为数字。 然后将格式更改为与字符串日期模式匹配的格式。 单击“确定”。