我有大量需要清理的 csv 文件。 所有这些文件都具有相同的格式,这使任务变得容易一些。 我的初始 csv 文件具有以下格式:
| 物品配方:(001) 48pt | | | | | |
| 舞台配方:48pt | | | | | |
| 批次编号:Prod1 | | | | | |
| 物品编号:42 | | | | | |
| 日期/时间:2017 年 5 月 1 日下午 4:28:56 | | | | | |
| | | | | | |
| 观点 | 测量 | 获得 | GFit | X | 是 |
| 1 | 12.3 | 99.7 | 0.99 | 1 | 1 |
| 2 | 12.2 | 99.9 | 0.98 | 2 | 2 |
| 3 | 12.1 | 99.8 | 0.98 | 3 | 3 |
前 6 行需要清理。 我正在考虑将前 6 行放入一个新表中并将它们转置。 移调后,将表格与其他部分连接起来。 我理想的 JMP 表如下:
| 物品配方: | 阶段配方: | 批次编号: | 商品编号: | 约会时间: | 观点 | 测量 | 获得 | GFit | X | 是 |
| (001) 48 点 | 48pt | 产品1 | 42 | 2017 年 5 月 1 日下午 4:28:56 | 1 | 12.3 | 99.7 | 0.99 | 1 | 1 |
| (001) 48 点 | 48pt | 产品1 | 42 | 2017 年 5 月 1 日下午 4:28:56 | 2 | 12.2 | 99.9 | 0.98 | 2 | 2 |
| (001) 48 点 | 48pt | 产品1 | 42 | 2017 年 5 月 1 日下午 4:28:56 | 3 | 12.1 | 99.8 | 0.98 | 3 | 3 |
| | | | | | | | | | | |
我正在尝试一个 jsl 脚本,但目前它超出了我的能力。 有人可以告诉我如何实现这一目标吗?
谢谢
很好地描述了这个问题,我认为你的计划会奏效。 您可以使用文本导入预览向导来完成部分工作。 通过将行数限制为 5,您可以获得标题,通过选择固定宽度的字段,您可以获得两列(或者空格,复数,对于分隔符会更好)。 (如果我对您数据的剪切和粘贴弄乱了制表符和空格,您可能需要稍微调整列分隔符)。 源脚本在表中,您可以为更大的脚本获取它的副本:
Open(
"C:\Users\v1\Desktop\x.txt",
columns(
Column( "c000001", Character, "Nominal" ),
Column( "c000002", Character, "Nominal" ),
Omitted Column( . )
),
Import Settings(
Fixed Column Widths( 13, 28, 98 ),
Strip Quotes( 0 ),
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( 5 ),
Year Rule( "20xx" )
)
)
First five linesFirst five lines前五行
接下来,再次导入,跳过 5 行,并获取该脚本:
Open(
"C:\Users\v1\Desktop\x.txt",
columns(
Column( "Point", Numeric, "Continuous", Format( "Best", 12 ) ),
Column( "Measurement", Numeric, "Continuous", Format( "Best", 12 ) ),
Column( "Gain", Numeric, "Continuous", Format( "Best", 12 ) ),
Column( "GFit", Numeric, "Continuous", Format( "Best", 12 ) ),
Column( "X", Numeric, "Continuous", Format( "Best", 12 ) ),
Column( "Y", Numeric, "Continuous", Format( "Best", 12 ) )
),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Tab, 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( 7 ),
Data Starts( 8 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
)
Data at bottom of fileData at bottom of file文件底部的数据
上面的所有 JSL 都是由文本导入预览向导编写的,并存储在附加到表的源脚本中。
The Subset section has part of the answerThe Subset section has part of the answer子集部分有部分答案