for 문의 열 이름을 어떻게 반복할 수 있나요?안녕하세요. 이전 열을 반복하는 새 수식 열을 만들려고 합니다. 이전 열은 두 그룹에 있고 각 그룹에는 두 문자열 중 하나로 시작하는 열 이름이 있습니다.그런 다음 이러한 열 헤더는 정수 0, 1, 2,...최대 22로 끝납니다. 첨부된 내 코드의 PDF 스크린샷을 보고 작동하지 않는 이유를 알려주십시오.어제까지 JMP를 사용해 본 적이 없어서 IF 문의 열 이름에 "i" 또는 "%i"를 잘못 사용한 것 같습니다.
미리 감사드립니다!
Re: for 문의 열 이름을 어떻게 반복할 수 있나요?Liz_s, 네, 이것은 열 번호를 참조하고 있습니다.
JMP 기본 메뉴에서 도움말 > 책 > 스크립팅 가이드를 선택하고 439페이지(또는 가까운 페이지)로 이동합니다. 9장에 있는 부분입니다. 데이터 테이블 , 섹션 1, 데이터 테이블 개체 작업 , 주제 데이터 값에 접근하기 . 데이터 값에 액세스하고 할당하는 대체 방법에 대해서는 해당 섹션 전체를 읽으십시오.
설명: 작업의 핵심은 각 행에 대해 "Matriculated"가 포함된 결정 열을 찾는 것이었습니다. 각 행에 대해 22회 이상 반복하면 중첩이 많이 발생합니다. 여기서 더 자세히 알아보려면 도움말 > 스크립팅 색인 > 함수를 사용하여 포함에 대해 알아보세요.
Contains( 목록|문자열, 일치하는 문자열)은 발견된 첫 번째 위치를 반환합니다. 참고: Loc()는 목록이나 행렬에서 일치하는 값이 발견된 모든 위치를 반환합니다. c1부터 cn까지의 열이 문자인 dt[row, c1::cn]을 이해하면 테이블 값 목록이 반환됩니다.Contains()는 위치(k)를 찾으므로 이것이 조직 열의 올바른 위치가 됩니다.
핵심은 기능에 액세스하고 할당하는 방법을 "도구를 아는 것"입니다.
JMP를 배우는 여정에 행운이 따르길 바랍니다.
Re: for 문의 열 이름을 어떻게 반복할 수 있나요?안녕,
이 스크립트는 완벽하게 작동했으며 JMP 공식 편집기에 익숙하지 않은 부분을 해결하는 데 도움을 주셔서 감사합니다.이 우아한 코드는 제가 루프를 작성하기 시작할 때 염두에 두었던 것 이상이었습니다.마지막 질문입니다. Index 설명에서 숫자 6과 10을 선택했는지 설명해 주시겠습니까?
테스트 파일에 두 개의 열 유형이 각각 5개씩 있고 총 10개의 열이 있었기 때문에 인덱스 번호 6과 10이 있었던 것 같습니다.그렇다면 6은 결정 열 세트를 시작하고 10은 결정 열을 끝내나요?(추측을 피하고 그냥 물어보기로 결정했습니다.)
감사한 마음!
리즈_S
Re: for 문의 열 이름을 어떻게 반복할 수 있나요?다음은 Matriculation 데이터 테이블에 적용되는 공식입니다. 이는 JSL 텍스트일 뿐입니다.
k = Contains( Current Data Table()[Row(), Index( 6, 10 )], "Matriculated" );
If( k > 0,
Column( "designation_organization_" || Char( k ) )[Row()],
"None"
);
Re: for 문의 열 이름을 어떻게 반복할 수 있나요?가장 먼저 시도한 것은 파란색 상자 수식을 복사하여 새 열 스크립트 창에 붙여넣는 것이었습니다. 붙여 넣지 않습니다. 이는 마치 솔루션의 파란색 상자에 있는 정보가 사진이나 스크린샷인 것과 같습니다.
예, 수식 상자를 두 번 클릭하여 스크립트를 입력하는 방법을 알고 있습니다. Contain 문에 행 및 열 인덱스를 추가하는 방법을 여전히 알 수 없습니다. 그러나 귀하의 답변에 대한 이전 부분에 다시 한번 감사드립니다.Re: for 문의 열 이름을 어떻게 반복할 수 있나요?때로는 다중문을 입력하는 것이 수식을 입력하는 것이 고통스럽기 때문에 입력하는 것이 더 좋습니다.
수식을 두 번 클릭하면 스크립트 창이 열립니다.약간의 연습이 필요할 수 있습니다. 열 번호를 사용하는 수식을 복사하여 파란색 상자에 붙여넣은 다음 두 번 클릭하여 스크립트 편집기를 불러올 수 있습니다.
도움이 되었기를 바랍니다.
Re: for 문의 열 이름을 어떻게 반복할 수 있나요?안녕하세요 gzmorgan0 님,
첨부한 테이블에 대해 작성한 첫 번째 스크립트는 제가 원하는 대로 작동하며 훌륭합니다!나는 오늘 직장에서 내 프로젝트를 끝낼 수 있을 것이다.감사해요!하지만 오늘이 JMP 3일차이므로 JMP 수식 편집기를 사용하여 마지막으로 작성하신 옵션을 어떻게 작성하는지 알고 싶습니다.첫 번째 스크립트를 실행한 후 테이블에 새 열을 만들려고 했을 때 두 가지 문제가 발생했습니다.
1.) 두 개의 개별 명령문에서 열 수식 편집기의 두 개의 독립적인 함수를 사용할 수 없습니다. 나는 ~로 시작했다 포함 함수에 ";"를 추가했습니다. 그 후에.그런데 내가 만약에 함수에는 Contains 문이 자동으로 포함되었습니다.기이한.나는 원하지 않는다 포함 안에 내장 만약에 혹은 그 반대로도.
2.) row()와 Index(6,10)를 포함 ( 현재 데이터 테이블(),...^ 옵션을 사용하면 쉼표로 구분된 "부분"이 새로 추가되었습니다. 다음을 포함합니다( 현재 데이터 테이블() , 부분 , "입학").행/열 옵션을 어떻게 삽입했나요? 포함 수식 편집기의 기능?
환영 키트 튜토리얼을 살펴봤지만 새 칼럼에서 스크립팅 및 수식 편집기 사용에 대한 정보가 충분하지 않았습니다.초보자에게 추천할 수 있는 YouTube 동영상을 알고 계시나요?하지만 시간이 되신다면 또 다른 답변을 주시면 감사하겠습니다.
정말 감사합니다!
Re: for 문의 열 이름을 어떻게 반복할 수 있나요?내가 필요하다고 생각하는 것을 달성하는 방법에는 여러 가지가 있습니다. 먼저 열 참조를 위한 JMP 구문을 이해해야 합니다.예를 들어 조직 1-5를 무작위로 선택하는 새 열을 생성하려는 경우 여기에는 열 수식이 있습니다.
i = Random Integer(1,5);
Column( "designation_organization_" || Char( i ) )[Row()];
|| 는 연결 연산자이고 Char(i)는 문자열입니다. 그런 다음 대괄호는 지정된 열의 행을 나타냅니다.
표를 첨부했습니다. 나는 당신의 테이블이 어떻게 생겼는지 전혀 모르지만 아마도 이 스크립트가 도움이 될 것입니다.
첨부된 테이블을 엽니다.그런 다음 이 스크립트를 실행하세요.
dt=data table("matriculation");
cnmes = dt << get column names("string");
dcols = {}; //create a list of decision columns
for(i=1, i<=nitems(cnmes), i++,
if( contains(cnmes[i], "_decision_"), Insert into(dcols, cnmes[i]) )
);
//create a new column
matcol = dt << New Column("Major", Character);
//rowwise
for(i=1, i <= nrow(dt) , i++,
k = Contains(dt[i,dcols], "Matriculated"); <BR /> //dt[ i, dcols] is a list of values in the decision columns from row i<BR /> //contains returns the position in the list for "Matriculated"
matcol[i] = if(k>0, Column("designation_organization_" || char(k))[i], "None" );<BR /> //if k > 0, "Matriculated" was found, so assign to matcol the organization for the corresponding k
);JMP에서는 열 번호를 사용할 수 있습니다. 다음은 열 번호를 사용하는 연결된 테이블의 새 열에 대한 스크립트입니다.

Re: for 문의 열 이름을 어떻게 반복할 수 있나요?PDF를 읽기 어렵습니다.22개 열 중 하나만 "Matriculated" 항목을 갖습니까? 아니면 여러 개를 사용하고 모든 조직 코드를 원하십니까?