使用过滤器打开 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);