동적 데이터 가져 오기에서 파일 이름을 사용하여 행을 자동으로 업데이트하는 방법은 무엇입니까?폴더에서 여러 파일을 단일 데이터 테이블로 가져 오는 스크립트 작업 중입니다. 나는 파일명이 각 행에 나타나기를 희망하는 USP_ID 열을 만들었습니다. 데이터가 올바르게 가져 오기는하지만 마지막으로 가져온 Excel 파일의 이름 만이 열에 표시되는 반면 각 파일 이름은 해당 데이터에 해당하는 행에 표시됩니다.
아래에 스크립트를 나열했습니다. 문제가되는 것으로 생각되는 라인이 있습니다. 단점을 찾을 수는 없지만. 어떤 제안이라도 대단히 감사하겠습니다!
Names Default To Here( 1 );
Clear Symbols();
filelist = {};
filepath = Munger( Pick Directory( "Select the desired file directory" ), 1, "/", "" );
prefilelist = Files In Directory( filepath );
n2 = N Items( prefilelist );
For( i2 = 1, n2 >= i2, i2++,
file = (prefilelist[i2]);
If( Item( -1, prefilelist[i2], "." ) == "xlsm" | Item( -1, prefilelist[i2], "." ) == "xlsx",
Insert Into( filelist, file ),
Show( file )
);
);
nf = N Items( filelist );
cc_dt = New Table( "Combined data " );
cc_dt << New Column( "USP_ID", character, nominal );
For( iii = 1, iii <= nf, iii++,
filenow = (filelist[iii]);
fileopen = (filepath || filenow);
dt = Open( fileopen );
dt << Run Formulas();
cc_dt << Concatenate( Data Table( dt ), append to first table );
cc_dt:USP_ID << set each value( filenow ); // having issues with this I think?
Close( dt, nosave );
);
colList = cc_dt << get column names( character, string );
For( i = 1, i <= N Items( colList ), i++,
selRows = cc_dt << get rows where(
Column( cc_dt, colList[i] )[Row()] == "NaN" | Column( cc_dt, colList[i] )[Row()] == "0"
);
If( N Rows( selRows ) > 0,
Column( cc_dt, colList[i] )[selRows] = "0";
Column( cc_dt, colList[i] ) << data type( "numeric" ) << modeling type( "continuous" );
);
);Re : 동적 데이터 가져 오기에서 파일 이름을 사용하여 행을 자동으로 업데이트하는 방법은 무엇입니까?안녕 멜라니,
도움을 주셔서 감사합니다. 비록 내가 원하는대로 작동하도록 귀하의 추천을 얻을 수는 없지만, 연결하기 전에 데이터 열에 소스 열을 할당하여 발견했습니다.
nf = N Items( filelist ); //number of items in the working list
cc_dt = New Table( "Combined fermenter data " );
cc_dt << New Column( "Source", character, nominal );
cc_dt << New Column( "USP_ID", character, formula( Substr( :Source, 1, 7 ) ) );
For( iii = 1, iii <= nf, iii++, //this starts the first loop
filenow = (filelist[iii]);
fileopen = (filepath || filenow);
dt = Open( fileopen );
dt << Run formulas();
dt << new column("Source", character, set initial data(filenow));
cc_dt << Concatenate( Data Table( dt ), append to first table );
close(dt, nosave);
);Re : 동적 데이터 가져 오기에서 파일 이름을 사용하여 행을 자동으로 업데이트하는 방법은 무엇입니까?cc_dt<SPAN class="token punctuation">:</SPAN>USP_ID <SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN><SPAN class="token messages"> set each value</SPAN><SPAN class="token punctuation">(</SPAN> filenow <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
각 값 설정은 열의 모든 값을 상수로 설정합니다. 따라서 모든 루프마다 해당 열의 모든 셀을 현재 파일 이름으로 설정합니다. 방금 파일 이름에 연결된 테이블에서 "새"셀만 설정해야합니다. 어쩌면이게 뭔가?
cc_dt << 위치 선택 (cc_dt : USP_ID == ""); // 이전 셀의 파일 이름이 모두 있다고 가정하고 빈 셀을 선택합니다.
selrows = cc_dt << 선택된 행 가져 오기 (); // 선택된 행 번호를 가져옵니다.
cc_dt : USP_ID [selrows] = filenow; // 해당 열의 해당 행만 파일 이름으로 설정합니다.
HTH,
멜라니