안녕하세요. 누군가 이 코드를 수정하도록 도와줄 수 있나요?폴더별로 csv 파일을 연결하려고 합니다. 사용자는 폴더를 선택해야 하며 모든 적격 csv 폴더는 폴더 이름에 따라 연결되어 저장됩니다. 이 방법을 사용하면 사용자는 스크립트 실행당 하나의 폴더를 선택하게 됩니다.
하지만 지금 하려는 작업은 사용자가 기본 폴더를 선택한 다음 스크립트를 실행하고 하위 폴더별로 데이터를 연결하는 것입니다(이전 방법과 마찬가지로 폴더 이름을 파일 이름으로 개별적으로 저장).
하지만 이 코드를 사용하면 모든 csv 파일이 하나의 파일로 연결됩니다. 재귀가 어떻게 작동하는지 수정하고 설명하는 데 도움을 줄 수 있습니까? 그리고 메인 폴더만 열어서 이 파일을 개별적으로(폴더별로 데이터 연결) 저장하려면 어떻게 해야 합니까? JMP 15를 사용하고 있습니다. 감사합니다
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>