Estoy buscando una forma de filtrar datos en un gráfico para incluir solo datos que se están acumulando o agotando. La versión simple de esto es acumulando = concentración en el punto de tiempo final > concentración en el punto de tiempo inicial (o < si se está agotando). Sin embargo, se vuelve un poco más complicado debido al hecho de que el punto de tiempo final no siempre será el mismo: algunos conjuntos de datos pueden ser en el transcurso de 12 días, algunos pueden ser de 14, etc. También es común que cada punto de tiempo sea realmente 3. réplicas, por lo que sería ideal poder usar el promedio de esos al decidir si las cosas se están acumulando o agotando (si no, probablemente no importaría mucho). En la imagen incluida, por ejemplo, me gustaría poder filtrar y solo mostrar la línea azul para acumular analitos. ¡Cualquier ayuda para comenzar sería apreciada! Mi objetivo es tener una columna con una salida de "acumulación" o "agotamiento", de esa manera solo se puede agregar al filtro de datos. ¡Gracias de antemano!
Col Media() y otras funciones Col similares (Col Min, Col Max,...) pueden ser útiles. Si pudiera proporcionar datos de ejemplo con una columna que indique las respuestas correctas, sería posible proporcionar un ejemplo.
Hola, adjunto una versión transformada/simplificada del tipo de datos con el que estoy trabajando, si eso ayuda. Conozco las funciones Col, pero he tenido problemas para unir las cosas de una manera que funcione
Como no se proporcionó una columna de respuesta "correcta", hice conjeturas. Este script creará columnas de fórmula que deberían ayudar a construir la columna final. También hay otras opciones al usar fórmulas o puede usar un método completamente diferente a solo fórmulas
Names Default To Here(1);
dt = Open("$DOWNLOADS/Sample Data for JMP Forum.jmp");
dt << Sort(By(:Time), Order(Ascending), Replace Table); // to make this a bit simpler sort by :Time
// Assumption: Time and Analyte create a group
dt << New Column("Mean_TimeAnalyte", Numeric, Continuous, Formula(
Col Mean(:"Concentration (mM)"n, :Time, :Analyte)
));
// Assumption: We are looking for first and last average value for each Analyte
dt << New Column("FirstAnalyteValue", Numeric, Continuous, Formula(
Col Sum(
If(Row() == Col Min(Row(), :Analyte),
:Mean_TimeAnalyte
,
0
),
:Analyte
)
));
dt << New Column("LastAnalyteValue", Numeric, Continuous, Formula(
Col Sum(
If(Row() == Col Max(Row(), :Analyte),
:Mean_TimeAnalyte
,
0
),
:Analyte
)
));
dt << New Column("AnalyteStatus", Numeric, Continuous, Formula(
If(:LastAnalyteValue > :FirstAnalyteValue,
"Accumulating"
,
"Depleting"
);
));
gb = dt << Graph Builder(
Size(528, 492),
Show Control Panel(0),
Variables(
X(:Time),
Y(:"Concentration (mM)"n),
Group X(:AnalyteStatus),
Overlay(:Analyte)
),
Elements(
Points(X, Y, Legend(5), Summary Statistic("Mean")),
Line(X, Y, Legend(6))
),
Local Data Filter(Add Filter(columns(:AnalyteStatus)))
);

