複数の csv ファイルを同じ形式でインポートする同様の形式のcsvファイルがいくつかあります。 すべてのcsvファイルには、行番号にヘッダーがあります。 279 & データは行番号 281 から始まります。 データの長さは異なる場合がありますが、すべての csv ファイルの最後の 4 行には無関係な情報が含まれているため、削除する必要があります。
現在、「複数ファイルのインポート」機能を使用してデータをインポートしていますが、しかし、最後の4行を除外する方法がわかりません。 JMP テーブルにインポートした後、行を削除します。 ディレクトリ上のすべてのcsvファイルを自動的にインポートし、最後の4行を除外してそれらを連結するスクリプトを作成することは可能ですか. 以下のスクリプトは、単一の csv ファイルをインポートしたときに得られるものです。
Open("C:\Users\TEST\ABC.csv",
columns(
New Column( "Record", Character, "Nominal" ),
New Column( "14", Numeric, "Continuous", Format( "Best", 12 ) ),
New Column( "ID", Character, "Nominal" ),
New Column( "XREL", Character, "Nominal" ),
New Column( "YREL", Character, "Nominal" ),
),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Tab, Space, 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( 279 ),
Data Starts( 281 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
)実際には、すべての列に連続形式の数値が含まれています。 しかし、上記の無関係な情報により、「公称」として検出されます。
分析データ表スクリプティングRe: 同じ形式のcsvファイルを複数インポートするありがとうジム。
あなたのソリューションは私に多くの時間を節約しました。
Re: 同じ形式のcsvファイルを複数インポートするこれは、特定のディレクトリ内のすべてのファイルを検索し、各ファイルを開き、最後の 4 行を削除してから連結ファイルに追加するコードの変更です。
入力に一致するファイルがないため、コードは完全にはテストされていません。しかし、それは近いはずであり、小さな問題を解決できるはずです.
Names Default To Here( 1 );
dirFiles = Files In Directory( "C:\Users\TEST" );
// Create the output data table to concatenate all files to
dtFinal = New Table( "Final", New Column( "Source", character ) );
For( i = 1, i <= N Items( dirFiles ), i++,
dt = Open(
"C:\Users\TEST\" || dirFiles[i],
columns(
New Column( "Record", Character, "Nominal" ),
New Column( "14", Numeric, "Continuous", Format( "Best", 12 ) ),
New Column( "ID", Character, "Nominal" ),
New Column( "XREL", Character, "Nominal" ),
New Column( "YREL", Character, "Nominal" ),
),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Tab, Space, 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( 279 ),
Data Starts( 281 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
);
// Delete the last 4 rows
dt << delete rows( Index( N Rows( dt ) - 4, N Rows( dt ) ) );
// Add a source column
dt << New Column( "Source", character, set each value( dirFiles[i] ) );
// Concatenate the file
dtFinal << concatenate( dt, Append to first table( 1 ) );
// delete the current input table
Close( dt, nosave );
);
これは複数ファイルのインポートよりも遅くなりますが、仕事は完了します。