Aplicación de fórmulaSI(MES(A151)=MES(A150),NA(),CONTAR.SI(W151:W181,1)*100/(CONTAR.SI(W151:W181,1)+CONTAR.SI(W151:W181,0))) . Esta es una fórmula aplicada en Excel para crear una nueva columna, donde la columna A tiene fecha y la columna W contiene solo 0 y 1 como valores. Cómo aplicar esta misma fórmula en JMP si tenemos valores de las columnas A y W.
Modelado estadístico avanzadoRe: Aplicación de fórmulasEso es lo que pensé que hacía mi ejemplo, y pareció funcionar en el archivo que adjunté. Me gustaría entender por qué no funcionó, pero su comentario no proporciona ninguna información útil. De manera similar a su solicitud inicial, debería proporcionar más detalles para que podamos entender lo que desea y por qué las sugerencias no lo logran.
Re: aplicación de fórmulaAsí es como yo manejaría esto.
La función Loc() devuelve una matriz de todos los valores de la matriz que coinciden con el segundo argumento de la función Loc(). Por lo tanto
dar una matriz
[1,0,1,1,.,5]
entonces
Loc( [1,0,1,1,.,5], 1 )
devolvería la matriz
[ 1, 1, 1 ]
por lo que es una simple cuestión de contar el número de filas en la matriz para encontrar CountIF
Length( Loc( [1,0,1,1,.,5], 1 ) )
que devolverá el valor 3
Aquí está la fórmula completa.
If( Month( :A ) == Lag( Month( :A ) ),
.,
wMatrix = :W[Index( Row(), Row() + 29 )];
(Length( Loc( wMatrix, 1 ) ) * 100) / (Length( Loc( wMatrix, 1 ) ) + Length( Loc( wMatrix, 0 ) ));
)
Normalmente, en JMP, se intenta evitar que los cálculos se basen en un número específico de filas en la tabla de datos. El debate actual es un buen ejemplo de ello. Para que la fórmula anterior funcione correctamente, la tabla de datos requiere que se encuentren exactamente 30 filas después del cambio de mes para realizar los cálculos. Todos sabemos que diferentes meses tienen diferentes números de días. El siguiente cambio a la fórmula anterior muestra cómo hacer los cálculos basándose en encontrar todos los datos para el mes actual, independientemente de la cantidad de días del mes.
If( Month( :A ) == Lag( Month( :A ) ),
.,
wMatrix = :W[Current Data Table() << get rows where(
Year( :A ) == Year( :A[Row()] ) & Month( :A ) == Month( :A[Row()] )
)];
(Length( Loc( wMatrix, 1 ) ) * 100) / (Length( Loc( wMatrix, 1 ) ) + Length( Loc( wMatrix, 0 ) ));
)
Re: aplicación de fórmula¿Podría proporcionar una tabla de ejemplo con todas las columnas necesarias + la columna de resultados esperados como tabla JMP? Hace que sea más fácil entender el problema que intentar convertir una fórmula de Excel sin ningún dato a una fórmula JMP. Quizás necesites algo como
Suma acumulativa de columnas(:W, :A) o Suma de columnas(:W, :A)
Re: aplicación de fórmulaMuchas gracias por la respuesta. Apliqué esta fórmula pero esto da una suma acumulativa, pero en mi caso, cada vez que cambia el mes necesito obtener el recuento de 0 y 1 para los próximos 30 días.
Re: Aplicación de fórmulasHola-
Había empezado a responder y entonces vi otra publicación. Esta podría ser una alternativa...

notas:
La función de mes devolverá la parte del mes de cualquier número codificado con fecha/marca de tiempo, igual que la función Month() de Excel.
El SI verificará si la fila actual no está en el límite del mes: esto está configurado para devolver un JMP "Falta", que puede comportarse un poco diferente a un NA() de Excel.
Dado que los valores se codificaron como 1 y 0, simplemente hice un promedio de las siguientes 30 filas en lugar de {Count 1/(count 0 + count 1)}.
Al realizar la transición entre fórmulas orientadas a hojas de cálculo y tablas de datos JMP con fórmulas que actúan como referencias relativas de Excel (retraso, promedio móvil)...
Examine cuidadosamente el comportamiento en los extremos superior e inferior para garantizar el funcionamiento previsto. Una referencia relativa de Excel a la "fila superior" copiada en la primera fila devolvería un error #Ref!. Un JMP Lag(1) devuelve un valor faltante en la primera fila. Observe también los detalles del promedio móvil de JMP a medida que el número de filas restantes es <30... (puede que no haya problema, solo tenga cuidado). Se puede usar una condición adicional en las fórmulas de JMP: if (row()==1, función especial para la primera fila; de lo contrario, usar la función lag).
La descripción no da una razón del diseño de la tabla, pero si la intención es encontrar la porción de 1 valores dentro del mes actual y se supone que habrá 30 filas por mes ordenadas en orden... hay otro enfoque que será robusto a # filas/mes <>30 y ordenamiento de filas... Con la columna de fecha/marca de tiempo A seleccionada, haga clic derecho > nueva columna de fórmula > fecha/hora > "mes año"...
luego crea una nueva columna de fórmula para encontrar el W "promedio" para ese mes/año Col Mean( :was_W, :"Month Year[was_A]"n ) * 100, condicional similar para encontrar la fila límite si es necesario
Re: aplicación de fórmulaSu solicitud es un poco confusa, pero creo que estoy cerca de lo que desea; consulte el archivo adjunto. Creé una columna de fechas aleatorias y luego las ordené. La columna W es un vector aleatorio de valores 0 y 1. La fórmula cuenta la fracción de los valores 1 en los próximos 30 días después de un cambio en meses. Si esto no es lo que desea, ¿puede explicarlo más claramente o publicar un ejemplo sencillo? Recuerde, JMP no es una hoja de cálculo, por lo que las fórmulas de Excel como CountIF no siempre se traducen bien.