如何仅打开()特定列<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />嗨,如果我有一个大型 JMP 数据表,有没有办法可以向 Open() 发送只加载特定列的消息?这将大大减少大文件的文件加载时间。例如,如果我有这个文件:
打开("c:\temp\fruit.jmp");
假设fruit.jmp 包含200 列不同水果类型,我可能需要访问所有这些列,但目前我只需要加载一列“Apple”,从而减少文件加载时间。执行后续的 Subset() 无法达到目的,因为需要首先打开大型数据文件,并且这里的目标是通过仅加载需要的列来减少文件加载时间。我希望像下面这样的东西会起作用,这当然不会:
Open("c:\temp\fruit.jmp",columns("Apple"));
建议?谢谢... dj
如何仅打开()特定列好吧,我想我可能已经想通了。我最终从过去找到了一个有用的帖子。我在脚本指南中搜索了所有 Open() 属性,如果不使用 Open Database() 命令,就无法做到这一点。基本上,只需先将源 .jmp 转换为 .xls 文件。只是想发布这个以防它帮助其他人。DJ
http://communities.sas.com/message/50379#50379
所以首先我将“fruit.jmp”转换为“fruit.xls”。这样我就可以让 JSL 使用 Excel ODBC DSN 连接和一些 SQL 代码来仅提取我需要的列。因此,假设我的 Excel 数据表有一个工作表“Sheet1”,其中有一个名为“Apple”的列,我只想加载此列,而不加载此工作表中的其他列以节省时间。下面的代码可以解决问题:
dt=Open Database("DSN=Excel Files;DBQ=c:\temp\fruit.xls;DriverId=790;MaxBufferSize=2048;PageTimeout=5;","SELECT Apple FROM `Sheet1$`" , "Fruit Table" );