루프 II 용 데이터 필터안녕하세요,
나는 (예 : 쿼리를 통해 원본 스크립트에서) 업데이트되는 데이터 테이블을 5 초마다 가지며 다른 테이블에 추가됩니다. 여태까지는 그런대로 잘됐다. 각 반복 후에 selction이 지워지지 않도록하려면 어떻게해야합니까?
Names Default To Here(0);
dt0 = New table ("Test",
New Column( "name", Character,"Nominal"),
New Column( "age", numeric, continuous),
New Column("sex", Character,"Nominal"),
New Column("height", numeric, continuous),
New column("weight", numeric, continuous,));
df = dt0 << Data Filter(
Add Filter( Columns( :sex ) )
);
n=0;
e=10;
startwork = Function( {},
dt1=Open( "$sample_data/big class.jmp");
dt0 << Concatenate( current data table(), "Append to First Table");
n+=1;
Close (dt1, nosave);
if(n<E></E>만약 사용자가 섹션을 변경할 때까지 모든 반복 후에 데이터 테이블과 그래프에 내 선택이 유효하면 좋을 것입니다.
많은 감사합니다!
다시 : 루프 II에 대한 데이터 필터첫 번째 질문과 같이 루프에 스크립트를 구현하는 경우 행 번호를 기준으로 선택이 유효합니다. 열 선택을 기반으로 선택이 필요합니다. 이를 위해 가능한 해결책을 찾았습니다.
목록 상자를 만들고이 선택을 테이블에 사용하십시오.
Names Default To Here(0);
dt0 = New table ("Test",
New Column( "name", Character,"Nominal"),
New Column( "age", numeric, continuous),
New Column("sex", Character,"Nominal"),
New Column("height", numeric, continuous),
New column("weight", numeric, continuous,));
List={"F","M"};
gb=new window("Choice",
LB1=List Box(List, width(150), maxSelected(5), nlines(1))
);
n=0;
e=10;
startwork = Function( {},
dt1=Open( "$sample_data/big class.jmp");
Choice=LB1 << get selected;
dt0 << Concatenate( current data table(), "Append to First Table");
dt0 << Select Where( Contains( Choice, :sex ) );
n+=1;
Close (dt1, nosave);
if(n<E></E>귀하의 답변에 많은 감사 드리며, 나는 매우 유용한 명령을 배웠습니다!
다시 : 루프 II에 대한 데이터 필터다음은 약간 다른 접근 방식입니다. "Test"데이터 필터의 << Get Script 메시지를 사용하고 약간 수정 한 다음 Big Class 데이터 테이블에 적용합니다. 모든 것은 테스트 데이터 테이블의 데이터 필터에 적용된 필터 변경 핸들러에 의해 트리거됩니다.
Names Default To Here( 0 );
dt1 = Open( "$sample_data/big class.jmp" );
dt0 = New Table( "Test",
New Column( "name", Character, "Nominal" ),
New Column( "age", numeric, continuous ),
New Column( "sex", Character, "Nominal", Values( {"F", "M", "F", "M", "F", "M", "F", "M"} ) ),
New Column( "height", numeric, continuous ),
New Column( "weight", numeric, continuous, )
);
df0 = dt0 << Data Filter( Add Filter( Columns( :sex ), /* variable get where selection df0*/ ) );
f = Function( {a},
dschar = Char( df0 << get script );
Try( df1 << close );
dschar = "df1 = dt1 " || Substr( dschar, 21 );
Eval( Parse( dschar ) );
Try( df1 << close );
);
rs = df0 << Make Filter Change Handler( f );
또한 기본 데이터 테이블의 하위 집합 또는 기본 테이블에서 요약 데이터 테이블을 만들고이 옵션을 사용하여 "원본 테이블에 링크"할 수 있습니다. 그런 다음 부분 집합 또는 요약 된 데이터 테이블에 데이터 필터를 배치하면 원본 테이블의 변경 내용이 자동으로 복제됩니다.
다시 : 루프 II에 대한 데이터 필터당신의 대답에 감사드립니다. 불행히도 도움말에서 힌트를 얻지 못했습니다 ==> 스크립팅 인덱스 ==> 데이터 필터 ..........
여러 옵션을 시도했지만 아무 것도 작동하지 않습니다.
df0에서 where 절 또는 where 인수를 변수로 가져와 where 인수로 df1에 넣을 수 있습니까?
나는 << where 절을 찾았지만 이것은 단지 텍스트 형식입니다 ...
Names Default To Here(0);
dt0 = New table ("Test",
New Column( "name", Character,"Nominal"),
New Column( "age", numeric, continuous),
New Column("sex", Character,"Nominal", Values({"F", "M", "F", "M", "F", "M", "F", "M"})),
New Column("height", numeric, continuous),
New column("weight", numeric, continuous,));
df0 = dt0 << Data Filter(
Add Filter( Columns( :sex ),/* variable get where selection df0*/ )
);
dw0 = df0 << get where clause;
dt1=Open( "$sample_data/big class.jmp");
df1 = dt1 << Data Filter(
Add Filter( Columns( :sex) /* set where selection from df0*/ )다시 : 루프 II에 대한 데이터 필터업데이트하기 전에 데이터 필터에서 Where 절을 검색 한 다음 업데이트를 수행하고 검색된 Where 절을 다시 적용하는 것이 좋습니다.
만나다
도움말 ==> 스크립트 색인 ==> 데이터 필터 ..........
세부 사항 및 예는