cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
The Discovery Summit 2025 Call for Content is open! Submit an abstract today to present at our premier analytics conference.
See how to use to use Text Explorer to glean valuable information from text data at April 25 webinar.

Formula

hcarr01
Level VI

Bonjour, je cherche à construire une colonne de test :

 

hcarr01_0-1739172787005.png

 

A partir du script suivant :

 

dt11 = current data table();
// Choisir colonnes commençant par employes
dur_cols = Filter Each( {col_name}, dt11 << Get Column Names( "String", Nominal ),
	Starts With( col_name, "employes " )
);

// Nouvelle colonne
dt11 << New Column( "TEST EMPLOYES", Numeric, "Continuous", Format( "Best", 12 ) );

// Modifier la formule de colonne : TEST EMPLOYES
dt11:TEST EMPLOYES <<
Set Formula(
	For( i = 1, i < n items(dur_cols), i++,
		If(
			(dur_cols[i] == dur_cols[i+1] | Is Missing( dur_cols[i+1] )),
			:TEST EMPLOYES = 1
			,
			:TEST EMPLOYES = 0
		)
	)
);

L'objectif est d'avoir des 0 ou des 1 dans la colonne TEST EMPLOYES en fonction des conditions dans la boucle if... Pour le moment je n'arrive pas à créer la colonne test employes avec les valeurs 0 ou 1.

 

Merci de votre aide

1 ACCEPTED SOLUTION

Accepted Solutions
jthi
Super User

Re: Formula

Doing the calculation from the original column is most likely easier

Names Default To Here(1);

dt = New Table("Untitled",
	Add Rows(3),
	Compress File When Saved(1),
	New Column("Column",
		Character,
		"Nominal",
		Set Values({"1-1-3", "2-2-2", "3-3", ""})
	),
	New Column("Column 1", Character, "Nominal", Set Values({"1", "2", "3", ""})),
	New Column("Column 2", Character, "Nominal", Set Values({"1", "2", "3", ""})),
	New Column("Column 3", Character, "Nominal", Set Values({"3", "2", "", ""}))
);

dt << New Column("R", Numeric, Nominal, Formula(
	res = Associative Array(Words(:Column , "-")) << get keys;
	Remove From(res, Contains(res, "")); // remove missing value
	N Items(res) == 1;
));

jthi_0-1739188538668.png

Not sure how fully missing row should be taken into account, in this case it is treated as 0 but it can be changed to one modifying the final comparison

-Jarmo

View solution in original post

3 REPLIES 3
jthi
Super User

Re: Formula

What are the conditions when 1 or 0 should be added?

-Jarmo
hcarr01
Level VI

Re: Formula

Je pars d'une colonne employé, dans laquelle il y a plusieurs champs renseigné comme par exemple "611 - 2000 - 300", il peut y avoir plus de 3 champs renseigné.

 

Dans mon script je divise cette colonne à partir du séparateur "-", donc il y a autant de colonne "employe..." que de champs dans la première colonne "employe".

 

Condition TEST EMPLOYE = 1 :

Toutes les colonnes employés crées sont égales ou valeur manquantes

 

Condition TEST EMPLOYE = 0 :

Données différentes dans les colonnes employés crées (ne pas prendre en compte quand la colonne est vide)

 

 

Exemple 1 :

colonne employé 1 : 300

colonne employé 2 : 300

colonne employé 3 : 500

 

TEST EMPLOYE = 0

 

Exemple 2 :

colonne employé 1 : 300

colonne employé 2 : 300

colonne employé 3 : 

 

TEST EMPLOYE = 1

 

jthi
Super User

Re: Formula

Doing the calculation from the original column is most likely easier

Names Default To Here(1);

dt = New Table("Untitled",
	Add Rows(3),
	Compress File When Saved(1),
	New Column("Column",
		Character,
		"Nominal",
		Set Values({"1-1-3", "2-2-2", "3-3", ""})
	),
	New Column("Column 1", Character, "Nominal", Set Values({"1", "2", "3", ""})),
	New Column("Column 2", Character, "Nominal", Set Values({"1", "2", "3", ""})),
	New Column("Column 3", Character, "Nominal", Set Values({"3", "2", "", ""}))
);

dt << New Column("R", Numeric, Nominal, Formula(
	res = Associative Array(Words(:Column , "-")) << get keys;
	Remove From(res, Contains(res, "")); // remove missing value
	N Items(res) == 1;
));

jthi_0-1739188538668.png

Not sure how fully missing row should be taken into account, in this case it is treated as 0 but it can be changed to one modifying the final comparison

-Jarmo