JSL의 열 이름 목록으로 JMP 표로 만들기안녕하세요,
테이블이 있고 "학생"열, "주제"열 및 "클래스"열로 표로 만들고 싶지만 "제목"열과 "클래스"열은 데이터에서 사용할 필요가 없습니다.
"subject" 열은 있지만 "class" 열은 없으면 "student" 열과 "subject" 열로 표로 만들어야 합니다.
"class" 열은 있지만 "subject" 열은 없으면 "student" 열과 "class" 열로 표로 만들어야 합니다.
모든 열이 있는 경우 세 열 모두로 표로 만들어야 합니다. 다음은 몇 가지 예입니다.
예 1: ("subject" 열과 "class" 열이 모두 있음)
입력:
| 수업 | 학생 | 점수 | 주제 |
| 1 | ㅏ | 10 | 수학 |
| 2 | ㅏ | 15 | 과학 |
| 삼 | ㅏ | 12 | 과학 |
| 1 | 비 | 15 | 수학 |
| 2 | 비 | 12 | 과학 |
산출:
| 수업 | 학생 | 주제 | 최대(마크) |
| 1 | ㅏ | 수학 | 10 |
| 2 | ㅏ | 과학 | 15 |
| 삼 | ㅏ | 과학 | 12 |
| 1 | 비 | 수학 | 15 |
| 2 | 비 | 과학 | 12 |
예 2: ("Class" 열은 있지만 "subject" 열은 없음)
입력:
| 수업 | 학생 | 점수 |
| 1 | ㅏ | 10 |
| 2 | ㅏ | 15 |
| 삼 | ㅏ | 12 |
| 1 | 비 | 15 |
| 2 | 비 | 12 |
산출:
| 수업 | 학생 | 최대(마크) |
| 1 | ㅏ | 10 |
| 2 | ㅏ | 15 |
| 삼 | ㅏ | 12 |
| 1 | 비 | 15 |
| 2 | 비 | 12 |
예 3: ("subject" 열은 있지만 "class" 열은 없음)
입력:
| 학생 | 점수 | 주제 |
| ㅏ | 10 | 수학 |
| ㅏ | 15 | 과학 |
| ㅏ | 12 | 과학 |
| 비 | 15 | 수학 |
| 비 | 12 | 과학 |
산출:
| 학생 | 주제 | 최대(마크) |
| ㅏ | 수학 | 10 |
| ㅏ | 과학 | 15 |
| 비 | 수학 | 15 |
| 비 | 과학 | 12 |
이 문제를 해결하도록 도와주세요.
감사해요
Re: JSL의 열 이름 목록으로 JMP 표 만들기감사합니다 @tsnelsonRe: JSL의 열 이름 목록으로 JMP 표 만들기이것이 당신이 찾고 있는 것입니까???
names default to here(1);
dt=current data table();
// The list of columns to look for
theList={"Class","Student","Subject", "xxxxxx","xxxxxx"};
allColList = dt << get column names(string);
// Remove any columns from theList that are not in the data table
For(i=n items(theList),i>=1, i--,
If(n rows(loc(allColList,theList[i]))==0,
remove from(theList,i,1)
)
);
// Run the tabulate
Tabulate(
Show Control Panel( 0 ),
Add Table(
Column Table( Analysis Columns( :Marks ), Statistics( Max ) ),
Row Table( Grouping Columns( eval(theList) ) )
)
);
다른 대상 열이 열 그룹화 이외의 역할을 수행하는 경우 다른 필수 입력 구문을 설명하는 코드를 개발해야 합니다.
Re: JSL의 열 이름 목록으로 JMP 표 만들기@txnelson 데이터에 존재할 수 있는 열 "클래스" 및 열 "제목"과 같은 5개의 열이 있습니다. 이제 표로 만들기 위해 IF 조건의 모든 순열을 제공해야 하며 각각 별도의 표로 코드를 갖게 됩니다. 코드가 너무 지저분해질 것입니다.
대신 모든 열 목록을 제공하는 단일 Tabulate 함수로 수행할 수 있고 데이터에서 사용 가능한 열만 가져옵니다.
감사해요Re: JSL의 열 이름 목록으로 JMP 표 만들기Tabulate 코드를 하나의 코드 집합으로 압축하면 코드가 훨씬 더 복잡해집니다.
더 많은 열이 있다고 말할 때 더 자세히 설명할 수 있습니까?
Re: JSL의 열 이름 목록으로 JMP 표 만들기@txnelson 답장을 보내 주셔서 감사합니다.
원본 데이터 세트에 그러한 열이 많기 때문에 테이블 스크립트의 단일 블록으로 이 문제를 해결할 수 있습니까?Re: JSL의 열 이름 목록으로 JMP 표 만들기샘플 데이터 테이블에서 3가지 시나리오를 각각 실행하여 각 실행의 각 스크립트를 스크립트 창에 저장합니다.그런 다음 각각의 적절한 스크립트를 가져와 다음 스크립트의 지정된 위치에 넣습니다.
names default to here(1);
dt= current data table();
colNames = dt << get column names(string);
// Here is the IF() structure to add in the tabulate code to
If( N Rows(loc(colNames, "Subject" ) ) > 0 & N Rows(loc(colNames, "Class" ) ) > 0,
// Add in the tabulate code that has Student, Subject and Class
,
N Rows(loc(colNames, "Subject" ) ) > 0,
// Add in the tablulate code that has just Student and Subject
,
N Rows(loc(colNames, "Class" ) ) > 0,
// Add in the tablulate code that has just Student and Class
);