열을 변수로 사용모두들 안녕 !
이것은 내 첫 번째 게시물이지만 마지막이 아니기를 바랍니다!
맛보기 작업을 하고 있습니다. 테이스터는 샘플을 다른 그룹에 넣고 문자가 같으면 샘플이 같은 그룹에 있습니다. 첫 번째 열은 샘플의 ref이고 나는 맛보기에 의한 열을 가지고 있습니다. 다음과 같은 테이블이 있습니다.
숫자 ECH D1 D2 D3
123화
234 A B B
기원전 345년
샘플이 같은 그룹에 있으면 0, 그렇지 않은 경우 1을 사용하여 테이스터가 새 테이블을 만들고 싶습니다.
첫 번째 맛보기의 경우 새 테이블은 다음과 같습니다.
번호 ECH 123 234 345
123 0 0 1
234 0 0 1
345 1 1 0
한 명의 맛보는 사람을 위해 이 새 테이블을 만드는 데 문제가 없지만 모든 열에 대해 모든 맛을 보는 사람에게 그렇게 하고 싶습니다. 결국, 나는 샘플 사이의 거리를 가지기 위해 모든 테이블을 합산해야 합니다.
이를 위해 가능한 경우 열을 변수로 사용하는 방법을 모르겠습니다 ...
도와주시겠어요?
JMP에서 스크립팅을 시작합니다!
도와주셔서 감사합니다!
마고
데이터 테이블Re: 열을 변수로 사용정말 감사합니다, 완벽하게 작동합니다!
사실, 마지막 루프가 유용합니다.
저는 vector를 사용해본 적이 없습니다. 좋은 도움이 되었습니다!
Re: 열을 변수로 사용@MargauxR ,
내가 첨부한 첫 번째 스크립트는 명시된 목표를 달성하지 못했습니다.이 테이블이 요구 사항을 충족하는 경우 수정된 스크립트가 첨부됩니다.
dt = Data Table("Tasters");
samples = dt:NUM ECH << get values;
nsamp = nitems(samples);
dtnew = New Table("Taster Match", New Column("Taster", Character),
New Column("NUM ECH", character));
for(l=1, l<= nsamp, l++,
dtnew << New Column(samples[l], Numeric)
);
vec = J(nsamp, 1, 1);
//get taster info
currRow = 0;
for(i= 2, i<=ncol(dt), i++,
tester = column(dt,i) << get name;
for(j = 1, j<=nsamp, j++,
idx = dt << get rows where (column(dt,i)[]==column(dt,i)[Row()=j]);
nr = nrow(idx);
tvec = vec;
if(nr > 0,
tvec[idx] = 0;
);
dtnew << add row(1);
currRow++;
dtnew:Taster[currRow] = tester;
dtnew:NUM ECH[currRow] = samples[j];
//write out results
dtnew[currRow,3::nsamp+2] = Transpose(tvec);
); //end for j
); // end for iRe: 열을 변수로 사용모두들 안녕
아직 문제가 있습니다. 내 그룹은 맛보기에 따라 다르게 이름이 지정될 것이기 때문에 코드를 약간 변경하려고 했습니다.
거의 작동하지만 반복 문제가 있습니다. 시음자가 동일한 그룹에 여러 샘플을 넣어 동일한 "이름"을 사용하는 경우 스크립트는 이름이 반복되는 횟수와 관련하여 여러 줄을 추가합니다.
and에서 샘플로 한 줄만 원합니다.
미스테리는 어디에 있는지 찾을 수 없습니다 ...
"tasters" 테이블에서 스크립트를 수행하고 결과는 "taster match 3"입니다.
도와주시겠어요?
Re: 열을 변수로 사용@gzmorgan0
대답 해 주셔서 감사합니다 ! 작동하는 것 같습니다! 그런 식으로 일할 생각은 없었습니다 ...
나는 내일 내 tablea에 시도하고 모든 것이 좋은 경우 내가 말할 것입니다.
내 테이블에 대해, 나는 그것보다 쉽게 만들었습니다. 실제로 각 문자는 그룹을 설명하는 단어 그룹과 일치합니다. 그러나 나는 그 부분을 관리 할 수 있습니다 
다시 감사합니다 !
Re: 열을 변수로 사용@MargauxR ,
결과 테이블이 이상하다는 것을 알았지만 문제는 흥미로웠습니다. 등급/그룹 값을 잃습니다!
테이스터 D1과 D5는 샘플을 동일하게 그룹화할 수 있지만 D1은 샘플에 A 및 D5를 C로 제공합니까?
오 글쎄!샘플 테이블을 확장했습니다. 이 표와 스크립트가 첨부되어 있습니다. 나는 그것이 당신이 원하는 것을한다고 생각합니다.
JSL을 처음 사용하는 경우 도움말>스크립팅 인덱스를 사용하여 Get Rows Where() 및 Add Rows, ncol(dt), Sort 등과 같은 JSL 테이블 메시지를 조회해야 합니다.

