使用過濾器開啟 CSV 的一部分你好,
如何開啟 CSV 的過濾部分?
我有 300 Mb CSV,但只需要其中的 10 Mb。
請提供 Big Class.csv 的範例,其中身高 > 50 且年齡 = 15;
謝謝。
回覆:使用過濾器開啟 CSV 的一部分非常感謝!!!!回覆:使用過濾器開啟 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 驅動程式找到了這些
安裝64位元exe:
This took a minuteThis took a minute這花了一分鐘
設定它。 在 Windows 開始功能表中鍵入 ODBC 以尋找 64 位元管理工具。




在 JMP 中使用它。 我偶然發現,有些圖片可能不太正確;好東西在最後。 文件->資料庫是起點。








我認為該檔案需要 CSV 擴展名,但我沒有做足夠的實驗。 使用 CSV 擴展名並使用逗號,而不是在數字兩邊使用引號,它就可以工作。 看起來引號會導入字串,但也可能有一種方法可以解決這個問題。
回覆:使用過濾器開啟 CSV 的一部分我不知道有什麼方法可以將Where子句傳遞給Excel輸入選項。下面是一個有效執行此操作的腳本,但它首先必須讀取整個資料表
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);