creando una nueva hoja de datos y copiando valores en ella en JSL<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />hola
Tengo un conjunto de datos con 50 números. Quiero calcular la media del conjunto de datos y colocar el valor medio en una nueva hoja de datos diferente "Resumen". De nuevo, quiero calcular la suma de los 50 números y colocarla en la misma nueva hoja de datos "Resumen". ¿Puede alguien ayudarme a colocar estos valores medios y de suma en la nueva hoja de datos "Resumen"?
Gracias,
Re: crear una nueva hoja de datos y copiar valores en ella en JSL
Gracias a todos por ayudarme con las secuencias de comandos JSL... ¡sus habilidades son muy apreciadas!
Re: crear una nueva hoja de datos y copiar valores en ella en JSLSi no le importan algunas repeticiones en algunas muestras, hay un comando SUBSET en TABLAS que produce muestras aleatorias:
Subconjunto (Tamaño de la muestra (10))
eso debería producir el 10 aleatorio para cada iteración.
En cuanto al resumen de cada grupo, puede usar el COMANDO DE APILAMIENTO para recopilar todos los datos mientras se conservan los nombres de las columnas (grupo de muestreo) y luego aplicar la tabla o el resumen por grupo de muestreo.
También me gustaría incluir todo eso en un guión, pero mis guiones son muy lentos.quizas mas tarde..
MS, excelente secuencias de comandos limpias, como siempre.
barry
Re: crear una nueva hoja de datos y copiar valores en ella en JSLLo siento, invertí la fracción. debería leer
fracción = k / n filas ( dt ) ;
Esta fracción (un número entre 0 y 1) se calcula solo porque la selección aleatoria requiere un argumento de fracción.
Aquí hay una versión que también coloca cada submuestra en la tabla de salida. Después de las columnas media y SD, debería ver diez columnas con los diez datos seleccionados al azar para cada iteración.
dt = Tabla de datos ( "Datos" ) ;
k = 10 ; //Establecer el tamaño de la muestra
norte = 100 ; //Establecer número de iteraciones
fracción = k / n filas ( dt ) ;
metro = j ( norte , 2 + k ) ; //Inicie una matriz para mantener medios y SD
// Bucle: hacer un subconjunto aleatorio n veces
Para ( i = 1 , i <= norte , i ++,
dt << seleccionar al azar ( fracción ) ;
metro [ i , 1 ] = Significar ( dt : Datos [ dt << obtener filas seleccionadas ] ) ;
metro [ i , 2 ] = Desv estándar ( dt : Datos [ dt << obtener filas seleccionadas ] ) ;
metro [ i , 3 :: 2 + k ] = transponer ( dt : Datos [ dt << obtener filas seleccionadas ]) ;
) ;
//Mover datos a una nueva tabla
dt2 = como mesa ( metro ) ;
dt2 << escoger un nombre ( "Datos resumidos" ) ;
Columna ( dt2 , 1 ) << escoger un nombre ( "Significar" ) ;
Columna ( dt2 , 2 ) << escoger un nombre ( "DesvEstándar" ) ;
Re: crear una nueva hoja de datos y copiar valores en ella en JSL
Y cada vez que quiero ver el subconjunto de 10 valores a partir de los cuales media y STD Dev. se calcula, ¿puedo tener esa opción?
Re: crear una nueva hoja de datos y copiar valores en ella en JSLsi. Obtuve la hoja final, pero ¿qué hace la línea de fracción? ¿Eso crea una fórmula para la muestra aleatoria?
Re: crear una nueva hoja de datos y copiar valores en ella en JSLUsé ese archivo al escribir el guión. Simplemente pegué los valores en el archivo de texto en una nueva tabla JMP (también puede abrirla desde dentro de JMP), cambié el nombre del archivo de "sin título" a "Datos" y le di a la columna el nombre "Datos". ¡Intentar otra vez!
Re: crear una nueva hoja de datos y copiar valores en ella en JSLla línea dt2 = como mesa ( metro ) ; crea la tabla. ¿Qué dice tu registro?
El script aquí asume que tiene una tabla llamada "Datos" y una columna con sus datos también con el nombre "Datos".
Re: crear una nueva hoja de datos y copiar valores en ella en JSL¿Puedes dejarme entender con este archivo txt? Lo siento, pero no estoy muy acostumbrado a JSL,
Re: crear una nueva hoja de datos y copiar valores en ella en JSLde alguna manera no pude ver la tabla final con medias y desviaciones estándar... ¿dónde se crea?
Re: crear una nueva hoja de datos y copiar valores en ella en JSLAquí hay una forma. El bucle llena de forma incremental una matriz que se convierte en una tabla de datos al final.
dt = Tabla de datos ( "Datos" ) ;
k = 10 ; //Establecer el tamaño de la muestra
norte = 100 ; //Establecer número de iteraciones
fracción = 1 - k / n filas ( dt ) ;
metro = j ( norte , 2 ) ; //Inicie una matriz para mantener medios y SD
// Bucle: hacer un subconjunto aleatorio n veces
Para ( i = 1 , i <= norte , i ++,
dt << seleccionar al azar ( fracción ) ;
metro [ i , 1 ] = Significar ( dt : Datos [ dt << obtener filas seleccionadas ] ) ;
metro [ i , 2 ] = Desv estándar ( dt : Datos [ dt << obtener filas seleccionadas ] ) ;
) ;
//Mover datos a una nueva tabla
dt2 = como tabla ( metro ) ;
dt2 << escoger un nombre ( "Datos resumidos" ) ;
Columna ( dt2 , 1 ) << escoger un nombre ( "Significar" ) ;
Columna ( dt2 , 2 ) << escoger un nombre ( "DesvEstándar" ) ;
Re: crear una nueva hoja de datos y copiar valores en ella en JSLsí, quiero saber cómo crear muestras de 10 y si tuviera que crear estas muestras de 10 varias veces (digamos más de 100), ¿necesito escribirlas en un bucle? ¿Cómo uso loop aquí para crear muestras de 10 varias veces?
Re: crear una nueva hoja de datos y copiar valores en ella en JSLEstaba mirando su segunda publicación: es la misma idea, pero crearía una nueva tabla que recopilaría las muestras de 10 en columnas y luego produciría un resumen solo una vez.si nadie más responde esto, lo responderé más tarde hoy después de cuidar a las personas que pagan mis facturas (muchas expectativas )
Re: crear una nueva hoja de datos y copiar valores en ella en JSLEn realidad, quería hacer esto: también publiqué esta pregunta en el foro...
Tengo un conjunto de datos con 1000 variables, números continuos. Quiero tomar un subconjunto aleatorio del conjunto de datos y calcular la media y la desviación estándar del subconjunto y colocarlo en un archivo de Excel separado "B". Quiero repetir este proceso: proceso de tomar el subconjunto de tamaño 10 del conjunto de datos original con 1000 variables y calcular la media y la desviación estándar y colocarlo en el mismo archivo de Excel "B". La hoja de Excel final deberá contener todas las medias y desviaciones estándar.
No estoy muy seguro de si el script que me ha dado puede ayudar a crear una nueva hoja en la pregunta anterior.
Adjunté mi hoja de datos de muestra.
Re: crear una nueva hoja de datos y copiar valores en ella en JSL¿Realmente quiere hacer esto en JSL, es decir, crear un script que pueda ejecutar para producir el resumen? Si quieres hacer esto solo una vez de forma interactiva?Responderé a ambos:
Interactivamente:
Crea tu tabla de datos - en este caso la llamo RawData,
Haga clic en Tabla >> Tabular
Haga clic en Datos y luego en Media y arrástrelo al área de salida
Haga clic en Suma y arrástrelo al área de salida
Haga clic en el triángulo rojo del informe >> Convertir en tabla de datos, o simplemente use el informe directamente (Cortar y pegar)
Usando JSL
Después de crear lo anterior usando Convertir en tabla de datos, asigne un nombre a la tabla (aquí se usa el Informe resumido)
Haga clic en el triángulo rojo >> Copiar guión
Crear un nuevo script (Archivo>>Nuevo>>Script)
Pegue su secuencia de comandos recién copiada en la nueva ventana de secuencia de comandos
Cierra tu informe de resumen anterior
Ejecute el script que acaba de crear
El informe de resumen debería aparecer
Un ejemplo que hice con datos aleatorios:
Texto:
Nueva tabla ("Informe de resumen",
Agregar filas (1),
Nuevo guión (
"Fuente",
(Tabla de datos( "RawData" ) << Tabular(
Agregar tabla (
Tabla de columnas (estadísticas (media, suma), columnas de análisis (: datos))
)
)) << Convertir en tabla de datos
),
Nueva columna ("Promedio (datos)",
Numérico,
Continuo,
Formato( "Mejor", 5 ),
Establecer valores ([171.936])
),
Nueva columna ("Suma (datos)",
Numérico,
Continuo,
Formato( "Mejor", 5 ),
Establecer valores ([8596.8])
)
)
Envíame un mensaje si quieres mis archivos de ejemplo.
barry