<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola a todos,
Tengo una pregunta. Se adjunta la tabla de datos.
Básicamente, me gustaría calcular la media, stddev y el recuento según las columnas "vol" por grupos. Así que primero escribí los siguientes scripts con la función "Resumir ()":
Resumir (vol_g = Por (: grupo),
vol_m_g0 = Media (: vol_0),
vol_m_g1 = Mean (: vol_1),
vol_m_g2 = Media (: vol_2),
vol_m_g3 = Media (: vol_3),
vol_m_g4 = Media (: vol_4),
vol_m_g5 = Media (: vol_5),
vol_m_g6 = Media (: vol_6),
vol_sd_g0 = stddev (: vol_0),
vol_sd_g1 = stddev (: vol_1),
vol_sd_g2 = stddev (: vol_2),
vol_sd_g3 = stddev (: vol_3),
vol_sd_g4 = stddev (: vol_4),
vol_sd_g5 = stddev (: vol_5),
vol_sd_g6 = stddev (: vol_6),
vol_n_g0 = Cuenta (: vol_0),
vol_n_g1 = Count (: vol_1),
vol_n_g2 = Count (: vol_2),
vol_n_g3 = Count (: vol_3),
vol_n_g4 = Cuenta (: vol_4),
vol_n_g5 = Count (: vol_5),
vol_n_g6 = Cuenta (: vol_6)
);
Pero es demasiado largo, así que me gustaría usar el bucle "para" a continuación:
Para (i = 0, i <= 6, i ++,
Resumir (vol_g = Por (: grupo),
Eval (Analizar (Eval Insert ("vol_m_g ^ i ^ = Mean (: vol_ ^ i ^)")))
Eval (Parse (Eval Insert ("volsd_g ^ i ^ = Stddev (: vol_ ^ i ^)"))),
Eval (Parse (Eval Insert ("vol_n_g ^ i ^ = Count (: vol_ ^ i ^)")))
)
);
Pero esta versión "for loop" no funciona. ¿Cómo podría revisarlo para que funcione?
¡¡Muchas gracias!!
Estimado MS y Ian @ JMP , ¡¡Muchas gracias por toda tu ayuda!! ¡Lo aprecio mucho! / CH
Dependiendo de qué tan general quiera que sea su código y de lo que suceda a continuación, podría ser más conveniente hacer una tabla de resumen:
NombresDefaultToHere ( 1 ) ;
dt1 = Tabla de datos ( "Raw_data_new" ) ;
// Obtener una lista de todas las columnas en dt
cols = dt1 << GetColumnNames ( "Cuerda" ) ;
// Eliminar cualquier columna que no queremos resumir
por ( do = Artículos ( cols ) , do > = 1 , do -, Si ( ! Contiene ( cols El do ] , "vol_" ) , Eliminar de ( cols , do )) ) ;
// Hacer una tabla de resumen
dt2 = dt1 << Resumen ( Grupo ( : Grupo ) , Media ( EvalList ( cols )) , StdDev ( EvalList ( cols )) , norte ( EvalList ( cols ))) ;
Debería funcionar si se compila la expresión de resumen () como una cadena:
por ( yo = 0 , yo <= 6 , yo ++,
Evaluar ( Analizar gramaticalmente ( Eval Insert ( "Resumir (vol_g = Por (: grupo),
vol_m_g ^ i ^ = Mean (: vol_ ^ i ^),
volsd_g ^ i ^ = Stddev (: vol_ ^ i ^),
vol_n_g ^ i ^ = Count (: vol_ ^ i ^)) "
)))
) ;