열 선택을 사용하여 for 루프의 테이블에 데이터 값을 추가하는 방법 대상 데이터의 새 전체 데이터 테이블을 만드는 위치For( date = date_array << First, !Is Empty( date ), date = date_array << Next( date ), //looping through date_array's keys is clunky but done this way in JMP
dt << Select Columns( :Timepoint, :Target Channel, :Run date ), Where(:Timepoint == date);
dt << Subset( ( Selected Rows ), Output Table Name( "Subset" ));<BR />);
for 루프의 각 반복을 통해 점진적으로 열 기준(:Timepoint == LBCM)으로 지정된 데이터를 추가하고 루프가 완료되면 마지막에 결합된 데이터 테이블로 결합하고 결과를 표시하고 싶습니다. .
현재로서는 아무 것도 추가하지 않습니다. 새로운 데이터 테이블이 전혀 생성되지 않습니다.
샘플 ID를 기반으로 하는 다른 for 루프에도 이 모든 것이 있지만 여기에 추가하면 현재로서는 너무 복잡할 것입니다.
JMP 커뮤니티 포럼에서 찾은 다른 모든 예제는 매우 복잡하거나 데이터 배열을 구축하고 데이터 테이블이나 이와 유사한 것으로 전송하는 것처럼 보입니다. 나는 여기서 해결책이 가능한 한 간단하기를 바랍니다. 물론 응답이 들어오는 대로 대화에 기여할 것이지만 현재로서는 완전히 막혀 있습니다.
도움을 주셔서 감사합니다.
마이크
해석학데이터 테이블다른스크립팅ㅏRe: Select Columns를 사용하여 for 루프의 테이블에 데이터 값을 추가하는 방법 대상 데이터의 전체 데이터 테이블을 새로 만드는 위치열 부분을 선택하는 것은 효율성이 매우 낮을 수 있지만 대부분 코드를 읽기 쉽게 만듭니다(제 생각에는).
하위 집합이 있는지 확인하기 위해 루프 내부에 디버깅 인쇄를 추가해 보셨습니까?
For(i = 1, i <= N Items(IDs), i++,
ID = IDs[i];
date_array = Associative Array({"date1", "date2", "date"}, {{}, {}, {}});
For(date = date_array << First, !Is Empty(date), date = date_array << Next(date),
dt << Select Where(:Timepoint == date);
Show(N Items(dt << Get Selected Rows));
dt_ld4 << Subset(Columns({"Timepoint", "Target Channel"}), Selected Rows, Output table name("Subset"));
);
);나는 추가했다 Show(N Items(dt << 선택한 행 가져오기)); 행이 선택되었는지 알려야 합니다. 또한 비슷한 이름의 열이 있는 경우 ID를 변수 이름으로 사용하는 것이 편하지 않을 것입니다(작동할 수도 있지만 확실하지 않을 수 있지만 확실히 하기 위해 그러한 이름은 사용하지 않습니다). 나는 그것을 currentID 또는 다른 것으로 바꿀 것입니다.
이 시점에서 우리가 이 문제를 부분적으로 해결하는 데 도움을 줄 수 있는 하나의 주제가 있다면 더 쉬울 수 있다고 생각합니다.우리에게 많은 도움이 될 것 중 하나는 예제 데이터 세트를 갖는 것입니다. 데이터 세트는 클 필요가 없고 익명화되거나 완전히 가짜 데이터일 수 있지만 여전히 현실적이어야 합니다(열 데이터 유형이 동일하고 다른 사례를 테스트할 가능성).
Re: Select Columns를 사용하여 for 루프의 테이블에 데이터 값을 추가하는 방법 대상 데이터의 전체 데이터 테이블을 새로 만드는 위치고마워, 자모. 코드가 대부분 효율성 향상입니까 아니면 진정한 기능 향상입니까?
그것은 나를 위해 완전히 작동하지 않지만 다른 for 루프 (또는 두 개)에이 모든 것이 있다고 말해야합니다.
For( i = 1, i <= N Items( IDs ), i++,
ID = IDs[i];
date_array = Associative Array( {"date1", "date2", "date"}, {{}, {}, {}} );
For( date = date_array << First, !Is Empty( date ), date = date_array << Next( date ), //looping through date_array's keys is clunky but done this way in JMP
dt << Select Where(:Timepoint == date);
dt_ld4 << Subset(Columns({"Timepoint", "Target Channel"}), Selected Rows, Output table name("Subset"));
//...
););컴퓨터는 실행 시 꽤 많이 생각하는 것 같지만 화면에는 아무 것도 표시되지 않습니다. 이 코드는 모두 익명으로 처리되어 철자 오류 및 필사 오류가 발생할 가능성은 물론 작성된 내용의 이전 버전과 혼동될 가능성이 있다는 점에 유의해야 합니다. 대략적인 유사성을 만들 수 있다고 가정하는 것이 안전하다고 생각합니다...
이 두 줄이 루프 내부에 있어야 하는지 아니면 그 중 하나 밖에 있어야 하는지 또는 이 시점에서 두 루프가 모두 필요한지 모르겠습니다. 대본을 한 번 더 깊이 들여다봐야 한다.
또한 별도의 게시물에서 이 코드와 관련된 몇 가지 개별 주제에 대해 논의하고 있습니다. 그것이 허용되는 에티켓인지, 아니면 코드 청크의 우선 순위를 하나의 게시물로 만들고 단일 게시물에서 별도의 주제를 논의하는 것이 더 좋은지, 아니면 어느 쪽이든 괜찮은지 선배가 알려주시겠습니까?
무초스 그라시아스,
남자 이름
Re: Select Columns를 사용하여 for 루프의 테이블에 데이터 값을 추가하는 방법 대상 데이터의 전체 데이터 테이블을 새로 만드는 위치나는 당신이 여기서 무엇을 하고 싶은지 100% 확신할 수 없으므로 약간 추측하고 있습니다.
이 두 행은 몇 가지 문제가 있는 것 같습니다.
dt << Select Columns( :Timepoint, :Target Channel, :Run date ), Where(:Timepoint == date);
dt << Subset( ( Selected Rows ), Output Table Name( "Subset" )););
하위 집합 명령 내에서 원하는 열을 결합할 수 있으며 << Select Where로 행 선택을 수행할 수 있습니다(Select가 누락된 것 같습니다).
dt << Select Where(:Timepoint == date);
dt << Subset(Columns({"Timepoint", "TargetChannel"}), Selected Rows, Output table name("Subset"));또한 하위 집합을 지정할 열을 먼저 선택하려면 하위 집합 명령 안에 선택한 열을 추가해야 합니다.
dt << Subset(Output table name("Subset"), Selected Rows, Selected Columns);Re: Select Columns를 사용하여 for 루프의 테이블에 데이터 값을 추가하는 방법 대상 데이터의 전체 데이터 테이블을 새로 만드는 위치보세요
dt << add rows(n);
필요에 따라 새 행을 추가하려면