¿Equivalente contable?Estoy tratando de encontrar una función de fórmula JMP equivalente a la función Countif de Excel, que apunte a una columna y devuelva el número de filas que son iguales al valor de la fila actual, como obtendría si hiciera un resumen en esa fila. .
En otras palabras, si tengo una tabla de 1000 líneas y el Color de la columna está configurado en "Púrpura" en 27 filas, quiero una fórmula para una nueva fila que devuelva 27 para esas filas (y el valor aplicable para las otras filas).
(Estoy seguro de que esto está aquí, pero **bip** si puedo encontrarlo)
JMP 17, macOS
La personalización en masaRe: ¿Equivalente de conteo?Cerca, creo. Nunca estuve en ese código C++, pero creo que en la primera llamada (normalmente para la fila 1) preprocesa todas las filas para almacenar en caché todas las posibles respuestas por valor. Luego, todas las filas posteriores se responden desde ese caché por valor. (Sin el caché sería un tiempo de orden (N^2) para N filas, con el caché solo orden (N) - tiempo lineal).
Re: ¿Equivalente de conteo?Eso tiene sentido, pero entonces la función Col Sum() está iterando sobre algo...
Me imagino que está iterando sobre las filas que coinciden con el valor actual en las columnas byVar, evaluando la expresión para cada una y luego sumando todos los resultados de esas evaluaciones.
¿Tengo ese derecho?Si es así, esa redacción me habría resultado muy útil en la documentación del índice de secuencias de comandos de Col Sum().
Re: ¿Equivalente de conteo?Piense en el primer argumento como una expresión. Una expresión puede ser
- 42
- :altura
- :altura *2 > :peso
- if ( :altura *2 > :peso, edad, 99 )
- si ( :altura>60 y :peso> 100, 1, 0 )
Todos ellos se evalúan en el contexto de la fila actual, por lo que se utilizan los valores de altura, peso y edad de la fila actual. El operador > devuelve 1 para verdadero y 0 para falso, por lo que eso también se puede sumar. El if se evalúa como edad o 99 en cada fila y eso se suma. Y simplemente usar :height también se evalúa para devolver el valor de la fila actual.
Lo admito, miré @jthi ejemplo por un minuto antes de entenderlo. Si incorpora esto al código, agregue un comentario para quien tenga que mantenerlo a continuación.
Re: ¿Equivalente de conteo?@Craige_Hales Entonces, si la primera entrada es un objeto de columna, la función Col Sum() pasa por encima de los valores de la columna (respetando la configuración byVar) sumando los valores, pero si la primera entrada es solo un número, ¿solo usa eso?
¿Puede la primera entrada ser cualquier expresión que devuelva un valor?
¿Puede también devolver una lista que se pasa por alto de manera similar a proporcionar un objeto de columna?¿Qué pasa si la longitud de esa lista no coincide con la longitud de la lista byVar?
Este comportamiento interno de JMP es fascinante y me encantaría aprender más sobre él, pero no puedo encontrar nada en los documentos que me ayude a desarrollar un modelo mental de lo que hace en casos como este...
Tenga en cuenta que contar si es una función de Excel que cuenta todos los elementos de un rango de celdas que cumplen con algunos criterios.No creo que Col Sum() haga exactamente eso, no parece haber una manera de usarlo para contar el número de casos en los que col1 > 7 y col2 == 15, por ejemplo.
Re: ¿Equivalente de conteo?@Audrey_Shull quizas el @jthi Se puede agregar un ejemplo al índice de secuencias de comandos con una explicación, algo como "El primer argumento de la fórmula de la columna es una expresión que se evalúa para cada fila. Generalmente es una columna que suma los valores de la columna, pero en este ejemplo es una constante 1 que suma el recuento de las filas. Esto es útil en este ejemplo porque el segundo argumento es la columna, lo que hace que las sumas sean para cada valor".
Agregar la palabra clave countif podría ayudar a alguien a encontrarla en el futuro (no soy competente en Excel, así que tal vez busque countif primero...)
Re: ¿Equivalente de conteo?Está utilizando 1 para el valor de la fila en lugar de un valor específico encontrado en la fila de alguna columna.
Editar: En este caso, creo que usar Col Number(:Column 1, :Column 1) también debería funcionar.
Re: ¿Equivalente de conteo?@jthi : El texto de ayuda dice que el primer argumento de Col Sum() es "xCol", pero solo tiene un "1" allí.¿Qué hace JMP con ese número 1 aquí?
(Esto es muy útil, hoy también tuvimos esta pregunta).
Re: ¿Equivalente de conteo?¿A qué texto de ayuda te refieres y qué tiene de intuitivo?Col Suma(nombre,)
También desde Scripting Index (que se encuentra en el menú Ayuda de JMP) puede obtener scripts de demostración ejecutables que a veces pueden resultar útiles.

Re: ¿Equivalente de conteo?Exacto, ¡gracias!
(y el texto de ayuda de JMP sobre Col Sum seguramente no es intuitivo...)
Re: ¿Equivalente de conteo?¿Algo como esto?

Col Sum(1, :Column 1)