J'ai un code qui utilise les noms dans une colonne pour vérifier le nombre de lignes dans un autre datatable qui sont au-dessus ou au-dessous d'un seuil "aberrant" (pour lequel nous voulons simplement utiliser une valeur fixe) pour cette colonne.
le code est ci-dessous. nous faisons généralement cela pour 30 à 50 colonnes (donc pour chaque ligne itère 30 à 50 fois). cela prend actuellement 26 secondes, sur un datatable (celui où les valeurs aberrantes sont comptées) et qui ne contient qu'un petit nombre (200) de lignes. alors quelque chose semble trop lent.
J'ai essayé de faire avec tabulate, et pensais à résumer - mais je dois compter au-dessus d'un seuil simple. des suggestions sur la façon de procéder plus rapidement? J'ai besoin de pouvoir compléter pour un nombre arbitraire de colonnes, tel que stocké dans le "rankdt: colonnes d'analyse" dans le code ci-dessous.
J'ai essayé de changer "obtenir des lignes où" pour "sélectionner où", puis compter les lignes sélectionnées - mais cela n'a fait aucune vitesse différente.
Merci,
jetpeach
for each row( // for each row in rankdt - 30 to 50 rows
col_to_count = char(rankdt:Analysis Columns);
rowsAbove= jdt<<GET rows="" where=""> outlier_flag_threshold);
:Above flag =N rows(rowsAbove);
rowsBelow= jdt<<GET rows="" where=""></GET></GET>
Cela ressemble à une situation où des calculs matriciels ou l'utilisation des fonctions ColStat pourraient accélérer les choses.
Je ne vois pas comment vos tables et vos seuils sont organisés. Pourriez-vous partager
exemple de tables?