Hola, ¿alguien puede ayudarme a modificar este código?Estoy intentando concatenar archivos csv por carpeta. El usuario deberá seleccionar una carpeta y todas las carpetas csv calificadas se concatenarán y guardarán según el nombre de la carpeta. Este método hace que el usuario elija una carpeta por ejecución de script.
Sin embargo, lo que estoy tratando de hacer ahora es hacer que el usuario elija la carpeta principal, luego ejecute el script y concatene los datos por subcarpetas (guardándolos individualmente con su nombre de carpeta como nombre de archivo como en el método anterior).
Pero con este código, todos los archivos csv se concatenan en un solo archivo. ¿Puedes ayudar a modificar y explicar cómo funciona la recursividad? ¿Y cómo puedo guardar estos archivos individualmente (concatenar datos por carpeta) con solo abrir la carpeta principal? Estoy usando JMP 15. Gracias
p = pick Directory("Select a Folder");<BR />//f = Files In Directory(p);
f = Files In Directory(p, recursive(1));
Dir = Word(-1, p, "/"); //get filename
saveDir = Substr( p, 1, Length( p ) - Length( Word( -1, p, "\/" ) ) - 1 ); //save file outside main folder
/* Removes the file names from the list f which are not CSV files */
for(j=1,j<=N Items(f),j++,
If (Substr(f[j],Length(f[j])-2,3)!= "CSV",
RemoveFrom(f,j,1);
j=j-1;
);
);
A = {}; /* creates a empty list for storing the names of each data table */
B = {};
C = {};
D = {};
k = {};
m = {};
/*Opens each one of the CSV files and deletes all unwanted rows */
for(j=1,j<=N Items(f),j++,
CSV = Open(Concat(p,f[j]), End of Field(comma), Strip Quotes(1), Labels(1),
Column Names Start(3), Data Starts(4), Columns(:MRR=Numeric));
colname = {};
colname = CSV<<GET column="" names="">20 & Contains(colname,"Weight")>50,
InsertInto(A,CSV);
CSV<<SELECT where="">1,
dt2 = dt1<<CONCATENATE>1,
dt3 = dt1<<CONCATENATE></CONCATENATE></CONCATENATE></SELECT></GET>