Pouvons-nous utiliser "for loop" dans Column Formula ?Salut tout le monde,
Existe-t-il un moyen de combiner ces deux opérations (créer une nouvelle colonne puis exécuter une boucle ForLoop) en une seule ?
J'ai répété les identifiants client dans une colonne, puis cela change à un moment donné et le 2ème identifiant continue de se répéter, puis le 3ème et ainsi de suite. Je veux créer une nouvelle colonne, disons, Unq_Id et ses valeurs doivent être vides jusqu'à ce que Customer_Id change. Je peux le faire dans le script ci-dessous, mais je me demande s'il existe une meilleure façon de le faire ? Cela signifie - exécuter une boucle dans Column Formula, ou quelque chose de similaire !
dt << New Column( “Unq_ID”, Numeric, Continuous, Set Each Value() );
dt << Sort( by( :Customer_ID ), Order( Ascending ), Replace Table( 1 ) );
For( i = 1, i <= N Rows( dt ), i++,
If(
:Customer_ID[i] == :Customer_ID[i + 1]
,
:Unq_ID[i] = :Customer_ID[i]
)
);
Toute suggestion?
merci Hari
Modélisation statistique avancéeAutomatisation et scriptÉtudes de consommation et de marchéOrganisation du contenuAccès aux donnéesPersonnalisation de masseIngénierie de la qualité et des procédésRe : Pouvons-nous utiliser la "boucle for" dans la formule de colonne ?Oui, je cherchais le 2ème type de solution.
Merci.
Re : Pouvons-nous utiliser la "boucle for" dans la formule de colonne ?Voici quelques façons de créer la colonne que vous voulez

Names Default To Here( 1 );
dt = New Table( "custIDs",
New Column( "Customer_ID", character, values( {"c1", "c1", "c1", "c2", "c2", "c3", "c3", "c3"} ) )
);
dt << New Column( "Or like this" );
counter = 0;
For( i = 1, i <= N Rows( dt ), i++,
If(
i == N Rows( dt ),
counter++;
:or like this[i] = counter;,
:Customer_ID[i] != :Customer_ID[i + 1],
counter++;
:or like this[i] = counter;
)
);
// or
dt << New Column( "or like this using formula",
formula(
x = .;
If( Row() == 1, counter = 0 );
If( :Customer_ID != Lag( :Customer_ID, -1 ) | Row() == N Rows( Current Data Table() ),
counter++;
x = counter;
);
x;
)
);
Re : Pouvons-nous utiliser la "boucle for" dans la formule de colonne ?Bonjour Nelson, j'y ai pensé mais ce n'est pas ce que je recherche.
Le script que vous avez fourni me donne quelque chose comme ci-dessous. Et celui que je cherche est à l'intérieur du tringle rouge.

Aussi, plutôt que de mettre c1, c2.... comment mettre 1, 2, 3... sorte de compteur, qui augmente de 1 dès qu'il y a un changement.
De l'aide?
Re : Pouvons-nous utiliser la "boucle for" dans la formule de colonne ?Voici une façon de faire

Names Default To Here( 1 );
dt = New Table( "custIDs",
New Column( "Customer_ID",
character,
values( {"c1", "c1", "c1", "c2", "c2", "c3", "c3", "c3"} )
)
);
For( i = 1, i <= N Rows( dt ), i++,
If( i == 1,
dt << New Column( Char( :Customer_ID[i] ), character );
Column( dt, :Customer_ID[i] )[i] = :Customer_ID[i];
,
If( :Customer_ID[i] != :Customer_ID[i - 1],
dt << New Column( Char( :Customer_ID[i] ), character )
)
);
Column( dt, :Customer_ID[i] )[i] = :Customer_ID[i];
);