Extracción de datos de gráfico/tabla de datos<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Tengo una tabla de datos que traza lo siguiente.Necesito encontrar los valores de x correspondientes para los puntos más cercanos a y=0.Necesito los dos primeros puntos (líneas rojas) que cruzan el cero (más cercano), el tercer cruce no es de interés.
Puedo encontrar el valor más cercano usando el script:
valor = 0;
d = Abs((:"col" << obtener valores) - valor);
filas = Loc(d == Min(d));
Mostrar (filas);
Tabla de datos( "DT" ) << seleccionar filas(filas);
Esto devuelve el valor más cercano a la línea cero independientemente de cuándo se cruza.

Estos dos valores de x se incluirán en el dt como una nueva columna y se utilizarán para cálculos adicionales.¿Estoy en el camino correcto con el guión anterior?
Por cierto, soy nuevo en las secuencias de comandos JMP (y en la programación en general).
¡Gracias!
Re: Extraer datos de gráfico/tabla de datosSi toma los datos de la tabla de resumen que dijo que había calculado y realiza Tablas ==> Unir esos datos a su tabla de datos original, entonces puede hacer referencia en su secuencia de comandos.O si agrega los datos manualmente, funcionará.Entonces, si la columna que se llama "Valor medio" habrá un valor para "Valor medio" para cada fila, entonces puede cambiar los "0" a
Mitad de valor y la mitad del valor[I+1]
Si((dt:y >= dt:Valor medio & dt:y[I+1]<=dt:Valor medio[I+1].................
Re: Extraer datos de gráfico/tabla de datosComo estoy tomando la mitad del valor máximo, no hay ningún valor de datos correspondiente en la tabla de datos para coincidir y obtener el valor de x.He hecho esto para obtener el valor de x que va con el máximo, pero ahora no es un valor que coincida ya que es un valor calculado.Estoy tratando de utilizar la mitad del valor como valor para extraer los valores x correspondientes.De manera similar al script anterior donde obtiene los valores que se cruzan en cero, necesito obtener los valores más cercanos al valor medio calculado.Estaba intentando establecer el valor medio como una variable para cada ID de pieza y recorrer cada ID de pieza y obtener los valores más cercanos al valor medio:
Esto funcionaría de manera similar al script anterior que obtiene los valores más cercanos a cero, excepto que obtendría los valores más cercanos a la mitad de los valores que se calculan para cada ID de pieza.
Re: Extraer datos de gráfico/tabla de datosSi estoy interpretando correctamente lo que está preguntando, creo que la forma más fácil de tomar su tabla de resumen y hacer una Tablas ==> Combinar coincidencias en la ID de pieza.Agregará el valor máximo a cada fila para el ID de pieza apropiado
Re: Extraer datos de gráfico/tabla de datosTengo otra pregunta.Tengo otro parámetro que estoy recopilando de mi conjunto de datos y he creado una tabla de resumen que encuentra el valor máximo para ese parámetro.A partir de ahí tomo la mitad de ese valor y lo registro en una nueva columna ("medio valor").Me gustaría usar el valor medio en el script para obtener los valores x correspondientes para cada ID de pieza:

Cada ID de pieza tendrá un valor medio diferente.Lo anterior es la sección del script donde se debe insertar la mitad del valor para obtener el valor del paso correspondiente.Tengo problemas para introducir correctamente el valor medio en el script e indexar cada ID de pieza y su valor medio asociado. ¿Cuál es la mejor manera de insertar la mitad del valor correcto en el script para cada ID de pieza?
Re: Extraer datos de gráfico/tabla de datosGracias Jim!
Esto funciona muy bien.
Re: Extraer datos de gráfico/tabla de datosAquí hay una reelaboración del código para incorporar Part ID a la mezcla.
Nombres predeterminados aquí ( 1 ) ;
dt = Tabla de datos actuales () ;
todo = Nueva mesa ( "Salidas" ,
Nueva columna ( "ID de pieza" , personaje ) ,
Nueva columna ( "Primer minuto" ) ,
Nueva columna ( "Segundo minuto" )
) ;
Tabla de datos actuales (dt) ;
Para ( i = 1 , i <= N filas (td) - 1 , i ++,
// Al inicio del bucle a través de los datos y cuando el ID de pieza
// cambios, los valores FirstMin y SecondMin deben establecerse en
// valores faltantes
Si ( i == 1 ,
primer minuto = . ;
SegundoMin = . ;,
dt : ID de pieza != dt : ID de pieza[i - 1 ] ,
primer minuto = . ;
SegundoMin = . ;
) ;
// Si se encuentra un valor cruzando cero, procesa los datos
Si ( (DT : y >= 0 & DT : y[yo + 1 ] <= 0 ) | (DT : y <= 0 & DT : y[yo + 1 ] >= 0 ) ,
Si ( Abdominales ( DT : y ) < Abdominales ( DT : y[yo + 1 ] ) ,
mín. = DT : y ;
minrow = I ;
,
mín. = DT : y[yo + 1 ] ;
minrow = i + 1 ;
) ;
// Si este es el primer cruce, establece los valores para firstMin
Si ( Está perdido (Primer minuto) ,
primer minuto = mín. ;
Primera fila = minrow ;,
// Si este es el segundo cruce, establece los valores para SecondMin
// y también seleccionamos las filas en la tabla de datos de entrada
// y finalmente enviar el primer y segundo resultado a la salida
// tabla de datos
// Porque sólo estamos recopilando datos para los primeros 2 cruces
// y estamos usando los valores FirstMin y SecondMin que se
// faltan como disparadores en el script, una vez que tanto el Primero como el Segundo
// los mínimos se establecen en valores reales, todos los cruces posteriores
// se ignorará hasta que se detecte un cambio de ID de pieza
Está perdido ( Segundo Min ) ,
SegundoMin = mín. ;
Segunda fila = minrow ;
// Vuelve a apuntar a la tabla de datos de entrada para seleccionar las filas
tabla de datos actual (dt) ;
Seleccionado ( Estado de la fila ( Primera fila ) ) = 1 ;
Seleccionado ( Estado de la fila ( Segunda fila ) ) = 1 ;
todo << agregar filas ( 1 ) ;
todo : ID de pieza[ N filas (salir)] = dt : ID de pieza[Segunda fila] ;
todo : Primer minuto[ N filas (salir)] = primer minuto ;
todo : SegundoMin[ N filas (salir)] = SegundoMin ;
) ;
) ;
) ;
Re: Extraer datos de gráfico/tabla de datosOtra pregunta sobre cómo hacer que este script recorra una tabla con muchas partes.Tengo 3 columnas en la tabla de datos; ID de pieza, paso, valor.Hay muchas partes diferentes y cada una tiene varios cientos de pasos.Quiero obtener los dos cruces por cero, como se indica arriba, para cada ID de pieza única en la tabla.¿No está seguro de cuál es el mejor enfoque sobre cómo obtener una ID de pieza única e insertarla en el script anterior para obtener los dos valores necesarios para cada ID de pieza?
Re: Extraer datos de gráfico/tabla de datosGracias Jim!
Esto es exactamente lo que necesitaba y funciona como lo describiste en tu publicación.Ahora estoy trabajando para incorporar los datos recopilados en secuencias de comandos de análisis adicionales.
Gracias de nuevo.
Re: Extraer datos de gráfico/tabla de datosCreo que la forma en que debes abordar esto es pasar por los datos y luego encontrar la primera y segunda vez que los datos cruzan cero.Cuando los datos crucen 0, busque cuál de los valores es el más cercano a cero y luego registre el valor y la fila.Luego repita para la segunda aparición y luego deje de leer.Finalmente seleccione las filas encontradas.Aquí hay un script simple que hace exactamente lo que describí anteriormente:
Nombres predeterminados aquí ( 1 ) ;
dt = Tabla de datos actuales () ;
primer minuto = . ;
SegundoMin = . ;
Para ( i = 1 , i <= N filas (td) - 1 , i ++,
Si ( ( : y >= 0 & : y[yo + 1 ] <= 0 ) | ( : y <= 0 & : y[yo + 1 ] >= 0 ) ,
Si ( Abdominales ( : y ) < Abdominales ( : y[yo + 1 ] ) ,
mín. = : y ;
minrow = I ;
,
mín. = : y[yo + 1 ] ;
minrow = i + 1 ;
) ;
Si ( Está perdido (Primer minuto) ,
primer minuto = mín. ;
Primera fila = minrow ;
,
SegundoMin = mín. ;
Segunda fila = minrow ;
Romper () ;
) ;
) ;
seleccionado ( estado de fila (Primera fila)) = 1 ;
seleccionado ( estado de fila (Segunda fila)) = 1 ;