Re: actualizar un archivo cada vez que se ejecuta un bucle (JSL)<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Cargué el archivo de datos (lo importé en XL mientras ejecutaba mi script) que usé en el script anterior
Mi guión es: -
Globos claros ();
dt = abierto ();
k = 5;
collect_means = {}; collect_stdevs = {}; collect_group_std = {};
Para (l = 1, l <= 2, l ++,
espectáculo (k);
Para (i = 1, i <= 3, i ++, // 3 veces
nt = dt << Subconjunto (
Tabla de salida ("Subconjunto"),
Tamaño de muestra (k), // muestras de 5
);
Resumir (m = Media (: Datos), s = Desarrollo Estándar (: Datos));
Insertar en (collect_means, m, 0);
Insertar en (collect_stdevs, s, 0);
// cerrar ("subconjunto", nosave);
);
Nueva mesa ("final",
Nueva columna ("significa", establecer valores (collect_means)),
Nueva columna ("stddevs", valores establecidos (collect_stdevs)),
// Nueva columna ("Group Std", Fórmula (col std dev (: means)))
);
// pt << Summary (Group, Std Dev (: means));
pt = Tabla de datos ("Final") << resume (p = std dev (: means));
Insertar en (collect_group_std, p, 0);
// cerrar ("Final", nosave);
k = k + 5;
);
Nueva tabla ("Grupos", Nueva columna ("Grupo de resumen", valores establecidos (collect_group_std)));
La hoja "Final" de la secuencia de comandos anterior debe actualizarse cada vez que se ejecute el bucle For exterior. Pero ahora, la "Hoja FInal" no se está actualizando y está utilizando la hoja "Final" anterior (usando la hoja de la iteración anterior). ¿Puede alguien ayudarme para que la hoja "final" se actualice cada vez con nuevos valores?
Re: actualizar un archivo cada vez que se ejecuta un bucle (JSL)Por cierto, el uso de listas y muchas tablas intermedias no es muy eficiente. Aquí, todos los datos son numéricos y los subconjuntos y la Tabla final parecen no ser de interés más que actuar como titulares temporales de los datos. En este caso, sugeriría usar matrices en lugar de ser mucho más eficientes, especialmente para grandes conjuntos de datos.
Prueba esto y compara el rendimiento con el script anterior:
Globos claros () ;
dt = Tabla de datos ( "Data de muestra" ) ;
collect_group_std = [] ;
Kansas = [] ;
por ( k = 5 , k <= 10 , k = k + 5 ,
coleccionar significa = [] ;
Kansas = Kansas | / k ;
por ( yo = 1 , yo <= 3 , yo ++, //3 veces
sub = Índice aleatorio ( N filas ( dt ) , k ) ;
coleccionar significa = coleccionar significa | / Media ( dt : Datos El sub ] ) ;
Show ( coleccionar significa ) ;
) ;
collect_group_std = collect_group_std | / Std Dev ( coleccionar significa ) ;
) ;
Nueva mesa ( "Grupos" , Nueva Columna ( "k" , valores de seteo ( Kansas ) ) , Nueva Columna ( "Grupo de resumen" , establecer valores ( collect_group_std ) ) ) ;
Re: actualizar un archivo cada vez que se ejecuta un bucle (JSL)La función de resumen no debe utilizarse como mensaje. Al trabajar con varias tablas que tienen nombres de columna idénticos, también es una buena idea incluir explícitamente la tabla en contexto (ed dt: Data en lugar de solo: Data). Y aunque no estoy seguro de lo que quiere lograr aquí, las listas no deberían ¿Se pueden restablecer collect_means y collect_stdevs para cada bucle for externo?
A continuación se muestra su código con algunos cambios menores.
Globos claros () ;
dt = Tabla de datos ( "Data de muestra" ) ;
k = 5 ;
collect_group_std = {} ;
por ( l = 1 , l <= 2 , l ++,
coleccionar significa = {} ;
collect_stdevs = {} ;
Show ( k ) ;
por ( yo = 1 , yo <= 3 , yo ++, //3 veces
Nuevo Testamento = dt << Subconjunto (
Tabla de salida ( "Subconjunto" ) ,
Tamaño de la muestra ( k ) , // muestras de 5
) ;
Resumir ( metro = Media ( Nuevo Testamento : Datos ) , s = Std Dev ( Nuevo Testamento : Datos ) ) ;
Insertar en ( coleccionar significa , metro , 0 ) ;
Insertar en ( collect_stdevs , s , 0 ) ;
// Cerrar (nt, nosave);
) ;
pt = Nueva mesa ( "Final" ,
Nueva Columna ( "medio" , establecer valores ( coleccionar significa ) ) ,
Nueva Columna ( "stddevs" , establecer valores ( collect_stdevs ) ) ,
) ;
Resumir ( pag = Std Dev ( pt : medio ) ) ;
Insertar en ( collect_group_std , pag , 0 ) ;
// Cerrar (pt, nosave);
k = k + 5 ;
) ;
Nueva mesa ( "Grupos" , Nueva Columna ( "Grupo de resumen" , establecer valores ( collect_group_std ) ) ) ;