루프 만들기다음 스크립트를 사용하여 행 번호가 있는 열을 여러 데이터 테이블에 추가하고 싶습니다.
dt<<NEW column=""></NEW>
나는 여전히 스크립팅에 익숙하지 않습니다. 모든 데이터 테이블을 자동으로 처리하려면 어떻게 해야 합니까? 작동할 수 있는 이 정보 라인이 있지만 "데이터 테이블"을 찾는 데 문제가 있는 것 같습니다...
Names Default To Here( 1 );
// Create a list of data tables to be updated
dtList = {"Table1", "Table2", etc...};
// Loop through each of the data tables and add the column
For( i = 1, i <= N Items( dtList ), i++,
dt = Data Table( dtList[i] );
Re: 루프를 생성합니다.대단히 감사합니다 제프. 저건 완벽 해.
시간을 내서 스크립팅 가이드를 자세히 살펴봐야 합니다. 그것은 나를 도울 것입니다.Re: 루프를 생성합니다.여러 가지 문제가 있습니다.
당신은 혼란스러워 dirpath 그리고 모든 파일 코드에서 잘못 사용했습니다. 의 결과 디렉토리 선택() , dirpath , 사용자가 선택한 디렉토리의 경로인 문자열입니다. 파일 목록이 있는 것처럼 아래 For() 루프의 인덱싱에서 사용하려고 했습니다.
의 결과 디렉토리의 파일() , 모든 파일 , 디렉토리의 파일 목록이 됩니다. 그것이 당신이 반복해야 할 것입니다.
다음을 수행해야 합니다. 열려 있는() 새 열을 추가하기 전에 데이터 테이블.
이후 모든 파일 list는 파일 이름일 뿐이므로 디렉토리를 연결해야 합니다. dirpath , Open()에 대한 인수에서.
마지막으로 파일의 확장자를 확인하여 JMP 데이터 테이블만 열려고 하는지 확인해야 합니다. 아래 예제 코드에서 단어() 기능. -1 인수는 문자열의 마지막 단어를 묻습니다.
dirpath = Pick Directory();
allfiles = Files In Directory( dirpath );
// Loop through each of the files and add the column
Show( allfiles );
For( i = 1, i <= N Items( allfiles ), i++,
If( Word( -1, allfiles[i], "." ) == "jmp",
dt = Open( dirpath || allfiles[i] );
dt << New Column( "Sequence", numeric, formula( Row() ) );
)
);
확인 시작하다 의 섹션 데이터 테이블 장의 스크립팅 가이드 데이터 테이블 작업에 대한 소개.
Re: 루프를 생성합니다.스크립트를 복사하는 동안 내 메시지에 오류가 있었지만 올바른 버전으로 작업했지만 여전히 디버그 옵션에 오류 메시지가 표시됩니다.
예기치 않은 "용". 누락된 것이 있을 수 있습니다. 또는 .
Re: 루프를 생성합니다.루프에 "dispath"가 있습니다."dirpath"로 변경하십시오.
Re: 루프를 생성합니다.보기에. 아직 옳지 않습니다. "For" 줄에 문제가 있습니까?
<SPAN class="token comment">dirpath = Pick Directory();<BR />allfiles = Files in Directory (dirpath);<BR />all files<BR /><BR />// Loop through each of the files and add the column</SPAN>
<SPAN class="token function">For</SPAN><SPAN class="token punctuation">(</SPAN> i <SPAN class="token operator">=</SPAN> <SPAN class="token number">1</SPAN><SPAN class="token punctuation">,</SPAN> i <SPAN class="token operator"><=</SPAN> <SPAN class="token function">N Items</SPAN><SPAN class="token punctuation">(</SPAN> dirpath <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN> i<SPAN class="token operator">++</SPAN><SPAN class="token punctuation">,</SPAN>
dt <SPAN class="token operator">=</SPAN> <SPAN class="token function">Data Table</SPAN><SPAN class="token punctuation">(</SPAN> dispath<SPAN class="token punctuation">[</SPAN>i<SPAN class="token punctuation">]</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
dt<SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN><SPAN class="token function">new column</SPAN><SPAN class="token punctuation">(</SPAN><SPAN class="token string">"Sequence"</SPAN><SPAN class="token punctuation">,</SPAN> numeric<SPAN class="token punctuation">,</SPAN> formula<SPAN class="token punctuation">(</SPAN><SPAN class="token function">Row</SPAN><SPAN class="token punctuation">(</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
<SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
Re: 루프를 생성합니다.디렉토리를 선택하고 해당 디렉토리의 모든 파일을 나열하는 명령이 있습니다.
JMP 파일인 경우 각 파일을 확인하는 것이 좋습니다(예: 파일 끝 확인).
dirpath = Pick Directory();
allfiles = Files in Directory(dirpath);
allfiles
Re: 루프를 생성합니다.당신! 잘 작동한다 !
스크립트 시작 시 이후에 스크립트를 실행하기 위해 폴더에 있는 모든 데이터 테이블을 열도록 요청할 수 있습니까? "listoftables"에서 각 파일의 제목을 차례로 표시해야 합니까? 그것은 많은 시간이 걸립니다… 어떻게 진행하라고 조언합니까?
미리 감사드립니다
Re: 루프를 생성합니다.다음 스크립트는 저에게 효과적입니다. 그렇지 않은 경우 로그 내용(메인 메뉴 => 창 => 로그)과 사용 중인 JMP 버전을 게시하면 도움이 됩니다.
listoftables = {"Untitled 5", "Untitled 4", "Untitled 3"};
// Loop through each of the data tables and add the column
For( i = 1, i <= N Items( listoftables ), i++,
dt = Data Table( listoftables[i] );
dt<<NEW column=""></NEW>