CSVの一部をフィルターで開くやあ、
CSV のフィルタリングされた部分を開く方法は何ですか?
300 Mb の CSV がありますが、必要なのは 10 Mb だけです。
高さ > 50 および年齢 = 15 の Big Class.csv の例を提供してください。
ありがとう。
Re: CSVの一部をフィルターで開くどうもありがとうございました!!!!Re: CSVの一部をフィルターで開くODBC ドライバーを使用して実行できます。 複雑で、どのようなパフォーマンスが期待できるかわかりません。 最初に JSL を説明し、次に複雑なセットアップ手順を説明します。 samples\import ディレクトリに大きな class.csv を作成しました。 bigclass.txt は、おそらく拡張子またはコンマがないため、最初の試行では機能しませんでした。 接続文字列でそれを修正する方法があるかもしれません。
New SQL Query(
Connection(
"ODBC:DSN=CSV;DBQ=C:\SPACE\SAS\JMP\15\SAMPLES\IMPORT DATA;DefaultDir=C:\SPACE\SAS\JMP\15\SAMPLES\IMPORT DATA;DriverId=27;FIL=text;MaxBufferSize=2048;PageTimeout=5;"
),
QueryName( "Big Class.csv" ),
Select(
Column( "name", "t1" ),
Column( "age", "t1" ),
Column( "sex", "t1" ),
Column( "height", "t1" ),
Column( "weight", "t1" )
),
From( Table( "Big Class.csv", Alias( "t1" ) ) ),
Where(
Custom( "t1.age=15 and t1.height>50", UI( Custom( Base( "Continuous" ) ) ) )
)
) << Run
コンピューターに DSN をセットアップする必要があります。 おそらくドライバーは持っていません。 ダウンロードとインストール。


Microsoft Access ODBC CSV Driver を検索して見つけました
64 ビット exe をインストールします。
This took a minuteThis took a minuteこれには 1 分かかりました
準備する。 Windows のスタート メニューに「ODBC」と入力して、64 ビットの管理ツールを見つけます。




JMPで使用します。 つまずいたのですが、いくつかの写真はあまり正確ではないかもしれません。良いものは最後にあります。 File->Database が出発点です。








ファイルには CSV 拡張子が必要だと思いますが、十分な実験を行っていません。 CSV 拡張子を使用し、コンマを使用し、数値を引用符で囲んでいない場合、機能します。 引用符が文字列をインポートするように見えますが、それを修正する方法もあるかもしれません。
Re: CSVの一部をフィルターで開くExcel の入力オプションに Where 句を渡す方法がわかりません。以下はそれを効果的に行うスクリプトですが、最初にデータ テーブル全体を読み込む必要があります。
dt = Open(
<"Path to your.csv">,
columns(
New Column( "name", Character, "Nominal" ),
New Column( "age", Numeric, "Continuous", Format( "Best", 12 ) ),
New Column( "sex", Character, "Nominal" ),
New Column( "height", Numeric, "Continuous", Format( "Best", 12 ) ),
New Column( "weight", Numeric, "Continuous", Format( "Best", 12 ) )
),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Comma, CSV( 1 ) ),
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( 1 ),
Column Names Start( 1 ),
Data Starts( 2 ),
Lines To Read( "All" ),
Year Rule( "20xx" )),
invisible
);
dt << select where(:height > 50 & :age == 15 );
dt2 = dt << subset( selected rows(1), selected columns(0) );
close(dt, nosave);