如何僅打開()特定列<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" );