Cómo abrir() solo columnas específicasHola, si tengo una tabla de datos JMP grande, ¿hay alguna manera de enviar un mensaje a Open() que solo se cargue en columnas específicas? Esto reduciría en gran medida el tiempo de carga de un archivo grande. Por ejemplo si tengo este archivo:
Abierto("c:\temp\fruta.jmp");
Digamos que fruit.jmp contiene 200 columnas de diferentes tipos de frutas y es posible que necesite acceso a todas ellas, pero por el momento solo necesito cargar en una columna "Apple", reduciendo así el tiempo de carga del archivo. Hacer un Subset() posterior anula el propósito, ya que el archivo de datos grande debe abrirse primero y el objetivo aquí es reducir los tiempos de carga del archivo cargando solo las columnas que se necesitan. Esperaba que algo como lo siguiente funcionara, lo cual, por supuesto, no funciona:
Open("c:\temp\fruit.jmp",columns("Apple"));
sugerencias? gracias... dj
Cómo abrir() solo columnas específicasOk, creo que ya lo he descubierto. Finalmente encontré una publicación útil del pasado. Busqué todos los atributos Open() en la guía de secuencias de comandos y no hay forma de hacerlo sin utilizar el comando Open Database(). Básicamente, primero solo necesita convertir el archivo .jmp fuente a un archivo .xls. Sólo quería publicar esto en caso de que ayude a alguien más. DJ
http://communities.sas.com/message/50379#50379
Primero convierto "fruit.jmp" en "fruit.xls". De esa manera puedo hacer que JSL use la conexión ODBC DSN de Excel y un poco de código SQL para extraer solo las columnas que necesito. Entonces, digamos que mi tabla de datos de Excel tiene una hoja de trabajo "Hoja1" y dentro de ella una columna llamada "Apple" y solo quiero cargar esta columna y ninguna de las otras en esta hoja de trabajo para ahorrar tiempo. Este código a continuación funciona:
dt=Open Database("DSN=Archivos Excel;DBQ=c:\temp\fruit.xls;DriverId=790;MaxBufferSize=2048;PageTimeout=5;","SELECCIONE Apple FROM `Sheet1$`", "Mesa de frutas" );