여러 날짜 열과 데이터 열을 사용하여 컨트롤 차트 자동화여보세요,
아래 그림과 같은 형식의 테이블에서 컨트롤 차트를 작성하는 방법을 자동화하려고합니다.
| 엔진 | 314 일 | 314- 매개 변수 1 | 314 매개 변수 2 | 314- 매개 변수 요법. | 213 매개 변수 1 | 날짜 | 241- 매개 변수 1 | 241- 매개 변수 2 | 241- 날짜 |
| # | 날짜 | # | # | # | # | 날짜 | # | # | 날짜 |
| # | 날짜 | # | # | # | # | 날짜 | # | # | 날짜 |
나는 내가 원하는 것에 가까이 다가 가도록이 코드를 가지고있다.
Rcols = dt << GetColumnNames( Continuous, String );
nw = New Window( "Control Charts", myVLB = V List Box() );
For( i = 1, i <= N Items( Rcols ), i++,
cc = Control Chart(
Sample Label( Column( dt, Rcols[1] ) ),
KSigma( 3 ),
Chart Col( Column( dt, Rcols[i] ), Levey Jennings )
);
myVLB << Append( Report( cc ) );
cc << close window;
);
그러나 이제는 샘플 레이블에 매개 변수의 ID에 대한 올바른 날짜를 만드는 방법을 찾으려고합니다. 각 ID에 대해 동일한 양의 매개 변수가 없으므로 테이블이 그런 식으로 균일하지 않으므로이 또한 조금 더 어려워집니다.
감사!
제목 : Re : 여러 날짜 열과 데이터 열을 사용하여 자동화 된 컨트롤 차트즉, 삽입하려는 항목이 목록이 아님을 의미합니다. 이 코드에서 :
a=3;
insert into(c,a)
변수 "c"가 목록으로 정의되지 않았으므로 오류가 발생합니다.
제목 : Re : 여러 날짜 열과 데이터 열을 사용하여 자동화 된 컨트롤 차트헤이 짐, 나는 이것이 내가 필요한 것에 정말로 가깝다고 생각한다. 오류가 발생했습니다 :
'Insert Into'의 액세스 또는 평가에서 L 값에만 삽입 할 수 있습니다.
이것이 의미하는 바를 밝힐 수 있습니까?
감사
제목 : Re : 여러 날짜 열과 데이터 열을 사용하여 자동화 된 컨트롤 차트Jim, 내 솔루션을 끝내기 전에 게시 됨 ... 다시. 필자의 접근 방식은 거의 동일하지만 많은 코드를 줄이는 목록 작업을 위해 만든 함수를 사용하고 싶습니다. Lfunc (list, expr)라고 부르는 함수는 목록의 각 항목에 대해 표현식을 실행합니다. [이것은 오랫동안 JMP wish list item이었습니다.]
아래의 JSL의 세 번째 줄은 제공 한 예제에 대해 [2, 7, 10]을 반환합니다. 각 열에 대해 코드를 얻고 "params ="로 시작하는 줄은 해당 코드로 시작하는 모든 열 (날짜가 포함되지 않음)을 반환합니다.
다른 접근법이 아니고 Lfunc ()와 같은 함수로 빌드 된 JMP에 대해 다시 한 번 생각해 보았을 때 비 활동적인 컨트롤 차트를 생성하고 있음을 알았습니다. "라이브"인터랙티브 차트를 원할 경우 도움말을 강조 표시하고 가리 키려면 첨부 파일 FindColumns_CC.jsl의 주석 코드를 참조하십시오.
dt=current data table();
Rcols = dt << GetColumnNames(String ); //get all coumns so the code can use the column number
dateCols = Loc(Matrix(Lfunc(RCols, Expr(Contains(Lowercase(x),"date"))))); //2,7,10
nw = New Window( "Control Charts", myVLB = V List Box() );
for(i=1, i<=nrow(dateCols), i++,
code = Trim(word(1, Rcols[dateCols[i]], "-"));
params = Loc(Matrix(Lfunc(RCols, Expr(StartsWith(x,code) & !Contains(lowercase(x),"date")) )));
제목 : Re : 여러 날짜 열과 데이터 열을 사용하여 자동화 된 컨트롤 차트나는 당신의 질문을 이해한다고 믿습니다. 나는 접근법을 취하여 데이터의 모든 그룹을 찾고 각 목록에있는 별도의 열 목록을 만들었습니다. 그런 다음 그룹이 루프되어 각 목록의 열이 처리됩니다. 솔루션을 테스트 할 데이터 테이블이 없으므로 코드를 해결하는 방법에 대한 좋은 지침으로 사용해야합니다. 문제는 아니지만 결정적인 해결책으로 간주되어서는 안됩니다.
Rcols = dt << GetColumnNames( Continuous, String );
// Process the columns into group and separate lists for each group
groupList = {};
For( i = 2, i <= N Items( Rcols ), i++,
theGroup = Word( 1, Rcols[i], "-" );
// Check if the group has been seen before
If( Contains( groupList, theGroup ) > 0,
// If this is a new group, create a list to hold the column names
Eval( Parse( "Group_" || theGroup || " = {};" ) );
// Add the group name to the groupList
Insert Into( groupList, theGroup );
// Add the current parameter to the new group list
Insert Into( "Group_" || theGroup, Rcols[i] );
,
// If this isn't a new group list, then add it to the
// already existing group list
Insert Into( "Group_" || theGroup, Rcols[i] )
);
);
// Create the display window
nw = New Window( "Control Charts", myVLB = V List Box() );
// Loop across the groups
For( group = 1, group <= N Items( groupList ), group++,
// Set a standard list name to have the values of the current Group_list
Eval( Parse( "tempRcols = Group_" || groupList[group] || ";" ) );
// Generate the charts
For( i = 2, i <= N Items( tempRcols ), i++,
cc = Control Chart(
Sample Label( Column( dt, tempRcols[1] ) ),
KSigma( 3 ),
Chart Col( Column( dt, tempRcols[i] ), Levey Jennings )
);
myVLB << Append( Report( cc ) );
cc << close window;
);
);