재 : 매번 루프 실행 파일 (JSL) 업데이트<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />위의 스크립트에서 사용한 데이터 파일 (스크립트를 실행하는 동안 XL로 가져옴)을 업로드했습니다.
내 스크립트는 :
전역 삭제 ();
dt = open ();
k = 5;
collect_means = {}; collect_stdevs = {}; collect_group_std = {};
(l = 1, l <= 2, l ++,
쇼 (k);
For (i = 1, i <= 3, i ++, // 3 times
nt = dt << 부분 집합 (
출력 표 ( "부분 집합"),
샘플 크기 (k), // 5의 샘플
);
요약 (m = Mean (: Data), s = 표준 Dev (: Data));
삽입 (collect_means, m, 0);
삽입 (collect_stdevs, s, 0);
// close ( "subset", nosave);
);
새 표 ( "최종",
새 열 ( "", 값 설정 (collect_means)),
새 열 ( "stddevs", 값 설정 (collect_stdevs)),
// 새 열 ( "Group Std", 수식 (col std dev (: 의미)))
);
// pt << 요약 (Group, Std Dev (: 의미));
pt = 데이터 테이블 ( "최종") << summarize (p = std dev (: 의미));
삽입 (collect_group_std, p, 0);
// close ( "Final", nosave);
k = k + 5;
);
새 테이블 ( "그룹", 새 열 ( "요약 그룹", 값 설정 (collect_group_std)));
위 스크립트의 "최종"시트는 외부 For 루프가 실행될 때마다 업데이트되어야합니다. 그러나 "Fialal Sheet"는 업데이트되지 않고 이전 "Final"시트를 사용합니다 (이전 반복의 시트 사용). "Final"시트가 매번 새로운 값으로 업데이트되도록 도와 줄 수 있습니까?
재 : 매번 루프 실행 파일 (JSL) 업데이트Btw, 목록과 많은 중개 테이블을 사용하는 것은 그리 효율적이지 않습니다. 여기서 모든 데이터는 숫자이며 부분 집합 및 최종 Tabler는 데이터의 임시 보유자 역할을하는 것 외의 다른 관심 대상이 아닙니다. 이 경우에는 대용량 데이터 세트의 경우 특히 훨씬 효율적으로 행렬을 사용하는 것이 좋습니다.
이것을 시도하고 위의 스크립트와 성능을 비교하십시오 :
전역 삭제 () ;
dt = 데이터 표 ( "샘플 데이터" ) ;
collect_group_std = [] ;
케이 = [] ;
에 대한 ( 케이 = 5 , 케이 <= 10 , 케이 = 케이 + 5 ,
collect_means = [] ;
케이 = 케이 | / 케이 ;
에 대한 ( 나는 = 1 , 나는 <= 삼 , 나는 ++, // 3 번
보결 = 임의 색인 ( N 행 ( dt ) , 케이 ) ;
collect_means = collect_means | / 평균 ( dt : 데이터 [ 보결 ] ) ;
보여 주다 ( collect_means ) ;
) ;
collect_group_std = collect_group_std | / 표준 개발 ( collect_means ) ;
) ;
새 테이블 ( "여러 떼" , 새 열 ( "케이" , 세트 값 ( 케이 ) ) , 새 열 ( "요약 그룹" , 값을 설정하다 ( collect_group_std ) ) ) ;
재 : 매번 루프 실행 파일 (JSL) 업데이트요약 기능은 메시지로 사용해서는 안됩니다. 동일한 열 이름을 가진 여러 테이블로 작업 할 때 컨텍스트에서 표를 명시 적으로 포함하는 것이 좋습니다 (ed : dt : Data가 아니라 Data). 그리고 비록 내가 당신이 여기에서 성취하고자하는 것을 정확히 모르겠지만, 목록은 없어야합니다. collect_means 및 collect_stdevs는 각 for-loop에 대해 재설정됩니까?
아래에 약간의 변경 사항이있는 코드가 있습니다.
전역 삭제 () ;
dt = 데이터 표 ( "샘플 데이터" ) ;
케이 = 5 ;
collect_group_std = {} ;
에 대한 ( 엘 = 1 , 엘 <= 2 , 엘 ++,
collect_means = {} ;
collect_stdevs = {} ;
보여 주다 ( 케이 ) ;
에 대한 ( 나는 = 1 , 나는 <= 삼 , 나는 ++, // 3 번
NT = dt << 부분 집합 (
출력 표 ( "부분 집합" ) ,
표본의 크기 ( 케이 ) , // 5의 샘플
) ;
요약하다 ( 엠 = 평균 ( NT : 데이터 ) , 에스 = 표준 개발 ( NT : 데이터 ) ) ;
에 집어 넣다 ( collect_means , 엠 , 0 ) ;
에 집어 넣다 ( collect_stdevs , 에스 , 0 ) ;
// Close (nt, nosave);
) ;
태평양 표준시 = 새 테이블 ( "결정적인" ,
새 열 ( "방법" , 값을 설정하다 ( collect_means ) ) ,
새 열 ( "stddevs" , 값을 설정하다 ( collect_stdevs ) ) ,
) ;
요약하다 ( 피 = 표준 개발 ( 태평양 표준시 : 방법 ) ) ;
에 집어 넣다 ( collect_group_std , 피 , 0 ) ;
// 닫기 (pt, nosave);
케이 = 케이 + 5 ;
) ;
새 테이블 ( "여러 떼" , 새 열 ( "요약 그룹" , 값을 설정하다 ( collect_group_std ) ) ) ;