各个字段该如何排列?我有txt文件,想导入JMP进行分析,但有些列没有对齐,如何对齐?
分隔符应该是空格、空格和逗号。但是“,”会将空格视为文本。我该如何解决这个问题?

dtTlog = Open(
D,
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Spaces, Space, CSV( 1 ), Comma ),
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" )
)
);
自动化和脚本视窗回复:如何排列各个字段?您遇到的问题是,您使用空格和逗号作为分隔符,而在 f 列中,您的行并排有逗号和空格分隔符。例如
4, 7
C1c 列读取 4,然后它将 视为分隔符,后跟空格作为第二个分隔符,因此由于它在第一个分隔符和第二个分隔符后没有看到值,因此它将缺失值应用于 f 列,然后 7 成为 C2c 列的值。
下面是一个脚本,它读取所有数据,删除所有逗号,将其保存到临时区域,然后使用输入流将其读回
names default to here(1);
d= "<YOUR path="" and="" file="" name="">";
dt = Open(
D ,
columns( New Column( "c000001", Character, "Nominal" ) ),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( CSV( 0 ) ),
Treat Leading Zeros as Character( 1 ),
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( 0 ),
First Named Column( 0 ),
Data Starts( 1 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
);
for each row(:c000001 = Trim(substitute(:c000001,","," ")));
dt << save ("$TEMP\interium file.txt");
dtTlog = Open(
"$TEMP\interium file.txt",
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Spaces, Space, CSV( 1 ), Comma ),
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( 2 ),
Data Starts( 3 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
); </YOUR>

回复:如何排列各个字段?
好的,我明白了。我理解你的建议。但它给我带来了以上警告。
回复:如何排列各个字段? For Each( {col},
dt << Get Column Reference( dt << Get Column Names( Character ) ),
If( !Is Empty( col << Get Formula ),
Continue()
);
For Each Row( dt, col[] = Substitute( col[], ",", " ", <<IGNORECASE></IGNORECASE>I replace that line with these code. It's working now. Thanks.
回复:如何排列各个字段?我的原始代码有点错误。我已返回并更正了它。请复制它并验证它是否有效。您所做的修复很好,但是,原始代码不会单独读取每一列。它将每一行中的所有数据作为一列读取,然后从只有一列的数据表的角度处理它。
回复:如何排列各个字段?或者,可以使用“加载文本文件”将文件作为文本打开,通过替换删除逗号,最后将文本打开到数据表中
原始帖子:
.csv 导入错误/ @Craige_Hales
文件导入:指定 NAN? / @jthi
txtfile = Load Text File("$DOWNLOADS/log - question2.txt");
substituteinto(txtfile,","," ");
Open(
Char to Blob(txtfile),
Import Settings(
End Of Field( Spaces, Space ),
)
);
回复:如何排列各个字段?文本到列:正确处理缺失数据
“正确”?
对于您的任务,文本到列的功能非常好:
dt = Open(
"$DOWNLOADS/log - question2.txt",
Import Settings(
End Of Field( Tab ),
Labels( 0 )
)
);
// split columns via Text to columns
dt << Text to Columns( columns( :c000001 ), Delimiters( " ", "," ));
dt << Delete Columns( :c000001);
// Move column names up
dt << Move up;