sumif: cuenta las columnas si contienen algún carácterHola,
Encontré una discusión de 2015 (asunto "sumif") que tiene un script muy útil para mi tarea actual. Escribí allí mi pregunta, pero no sé si las personas que participaron en esa discusión pueden ver mi pregunta.
Encontré este script (ligeramente modificado) y funciona muy bien para contar columnas para cada fila donde los valores son "0/0" (o lo que sea).
dt << New Column("Sum",
Numeric, Formula(
Local({i = 0, n = N Col(Current Data Table()) - 1},
Sum(Repeat({i++ ; (Column(i)[] =="0/0")}, n))
)
)
);Sin embargo, ¿cómo editar este script para contar columnas que contienen "some_character"?
He adjuntado una tabla de datos donde la última columna "Suma" tiene una fórmula y los números resultantes necesarios.
Tengo una gran tabla de datos y me gustaría tener un script para contar columnas para cada fila con valores específicos (como caracteres).
Intenté modificar el script anterior pero no funciona:
dt << New Column("Miss",
Numeric, Formula(
Local({i = 0, n = N Col(Current Data Table()) - 1},
Sum(Repeat({i++ ; (Contains(Column(i)[],"."))}, n))
)
)
);</CODE>Please, help</P><P>Valentina</P></LINGO-BODY><LINGO-LABS id="lingo-labs-737490" slang="en-US" mode="CREATE"><LINGO-LABEL>Automatización y scripting</LINGO-LABEL></LINGO-LABS><LINGO-SUB id="lingo-sub-737586" slang="en-US" mode="CREATE">Re: sumif: contar columnas si contienen algún carácter</LINGO-SUB><LINGO-BODY id="lingo-body-737586" slang="en-US" mode="CREATE"><P>La tabla de datos original que adjuntaste no era así, ya que tiene 4 columnas (no puedes ignorar la columna Suma)</P>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="jthi_0-1711103084651.png" style="width: 400px;"><span class="lia-inline-image-display-wrapper" image-alt="jthi_0-1711103084651.png" style="width: 400px;"><img src="https://us.v-cdn.net/6038925/uploads/images/62510iAAF3B35AD80E493A/jthi_0-1711103084651.png" role="button" title="jthi_0-1711103084651.png" alt="jthi_0-1711103084651.png" /></span></SPAN></P>
<P>Dependiendo de sus datos, así es como lo haría si tuviera que usar una fórmula (lo más probable es que lo evite y solo use una solución de script pura)</P>
<PRE><CODE class=" language-jsl">Names Default To Here(1);
dt = Open("$DOWNLOADS/sum_help_data.jmp");
dt << Delete Column("Sum");
dt << New Column("Miss", Numeric, Continuous, Formula(
As Constant(
cols_of_interest = Filter Each({colname}, Current Data Table() << Get Column Names("String"),
!IsMissing(Regex(colname, "S\d"));
);
);
Local({
res = 0;
},
For Each({colname}, cols_of_interest,
res = res + (Contains(Column(colname)[], ".") > 0);
);
res;
);
));
Re: sumif: contar columnas si contienen algún carácterSí, parece que todos los datos deberían ser del mismo tipo.
¡Gracias! ¡Funciona!
Re: sumif: contar columnas si contienen algún carácterHe adjuntado una pequeña tabla de datos a mi publicación. Tiene 3 filas y 3 columnas con un encabezado:
T1 T2 T3
0/0./. 0/0
./. ./. ./.
0/0 0/0 0/0
El script no funciona en esta tabla de muestra
Fórmula de suma de columnas interrumpida
El argumento es de tipo incorrecto en la fila 1 en el acceso o evaluación de 'Contiene', argumento incorrecto (columna (i) []), contiene/*###*/(columna (i) [], ".")
Se han ignorado los errores de evaluación de fórmulas.
Re: sumif: contar columnas si contienen algún carácterLo más probable es que el bucle esté llegando a una columna que no es de caracteres. Es probable que esta parte necesite alguna modificación.
n = N Col(Current Data Table()) - 1
Es muy difícil saber cómo debe hacerse sin ningún conocimiento de los datos. Podría ser simplemente una modificación simple del -1, obtener una lista de columnas de caracteres o calcular qué columnas recorrer mediante algún tipo de patrón.
Re: sumif: contar columnas si contienen algún carácterEsto es de mi registro:
Fórmula de suma de columnas interrumpida
El argumento es de tipo incorrecto en la fila 421001 en el acceso o evaluación de 'Contiene', argumento incorrecto (columna (i) []), contiene/*###*/(columna (i) [], ".")
Se han ignorado los errores de evaluación de fórmulas.
Re: sumif: contar columnas si contienen algún carácterLo siento, no entiendo tu pregunta.
Tengo una tabla de aproximadamente 500 000 filas y aproximadamente 3000 columnas. Necesito calcular la suma de las columnas que contienen un punto. No puedo usar la fórmula.
Quiero tener un guión, cualquier guión que funcione. Probé distintos enfoques, pero ninguno funcionó.
Re: sumif: contar columnas si contienen algún carácter¿Es necesario tener una fórmula para esto?