csvをインポートし、いくつかの列の形式のみを変更しますインポートする必要のあるcsvファイルがいくつかあり、ソフトウェアバージョンに関連するフィールドがいくつかあります。 ただし、これらはxyzのようにcsvに含まれており、引用符で囲まれていないため、JMPはそれを数値データ型として取り込みます。 その場合、JMPはその番号が日付であると判断し、それを日付に変換するため、使用可能なバージョンに戻すことは非常に困難です。
ファイルを手動でインポートする場合は、プレビューを使用して、必要な列を必要なデータ型に強制できます。 ただし、結果のインポートスクリプトには、すべての列に対して'new column()'があり、JMPがファイルをインポートするようにすべてを省略するか、いくつかのインポートを制御できるように186列すべてをリストする必要があります。
本当の問題が発生するのは、これらのファイルの一部に異なる列があることです...いくつかは共通であり、いくつかはそうではありませんが、すべての場合でバージョン列は共通であり、それらがどのように取り込まれるかを制御する必要があります。
以下は私がやりたいこと(またはこのようなもの)ですが、列の総数は実際には186です...
Open(
filepath,
columns(
New Column( "ALGORITHM_VERSION", Character, "Nominal" ),
New Column( "CLUST_ALG_VERSION", Character, "Nominal" ),
New Column( "CYTOFILEIO_VERSION", Character, "Nominal" ),
New Column( "RELEASE_VERSION", Character, "Nominal" )
),
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" )
)
)
スクリプティング再:csvをインポートし、いくつかの列の形式のみを変更しますこれは、列を文字に適切に変更するために機能するスクリプトです。
Names Default To Here( 1 );
dt = Open(
filepath,
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" )
)
);
For( i = 1, i <= N Cols( dt ), i++,
If(
Contains(
Uppercase( Column( dt, i ) << get name ),
"_VERSION"
) & Column( dt, i ) << get data type == "Numeric",
Column( dt, i ) << set format( "Fixed Dec", 18, 0 );
Column( dt, i ) << data type( "Character" );
)
);
再:csvをインポートし、いくつかの列の形式のみを変更します次のような式を使用できますか
Char( Month( :colName ) ) || "." || Char( Day( :colName ) ) || "." ||
Char( Year( :colName ) )
元に戻すには?
再:csvをインポートし、いくつかの列の形式のみを変更しますレイアウトの一部を見ると、それはそれらの一部では機能しますが、すべてではありません。そしてもちろん、処理されるまで、取得しているレイアウトはわかりません。
現在、CSVの各アベニューのコードがあり、処理するにはファイルを正しいパスに送信する必要があります...しかし、すべてのファイルで90%同じである必要があるため、残念なことになります。より動的なソリューションではありません。