JSL Compare la valeur de la ligne à la ligne suivante.Bonjour,
J'essaye d'utiliser "POUR" et "SI" pour créer une colonne de condition.
J'ai ce tableau et je veux que la colonne «Con» indique si l'âge dans la ligne après est inférieur à la ligne actuelle. si oui "1" sinon "0"
| Nom | Âge | Con |
| David | 23 | 0 |
| Bari | 26 | 1 |
| James | 12 | 0 |
| Lora | 14 | 0 |
C'est ce que j'ai: (ne fonctionne pas)
dt<< New Column( "Con", Formula( For( i = 1,i <= N Row( dt ), i++, If(:Age[i] >= :Age[i+1] , "0", "1", ))));
Votre aide sera appréciée.
ScriptingRe: JSL Compare la valeur de la ligne à la ligne suivante.C'est ce que vous recherchez?
New Table( "Ages",
Add Rows( 4 ),
New Column( "Age",
Numeric,
"Ordinal",
Format( "Best", 12 ),
Set Values( [23, 26, 12, 14] )
),
New Column( "Younger than Previous",
Numeric,
"Nominal",
Format( "Best", 12 ),
Formula( If( :Age < Lag( :Age, 1 ), 1, 0 ) ),
Value Labels( {0 = "No", 1 = "Yes"} ),
Use Value Labels( 1 ),
Set Display Width( 125 )
)
)Re: JSL Compare la valeur de la ligne à la ligne suivante.Merci, cela pourrait fonctionner mais cela marquera comme "Oui" la ligne 3 (James) et j'essaye de marquer la ligne 2 (Bari) avec un "Oui"
Une autre solution?
Re: JSL Compare la valeur de la ligne à la ligne suivante.Voici deux manières de procéder (Row() et Lag() :
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(4),
Compress File When Saved(1),
New Column("Name", Character, "Nominal", Set Values({"David", "Bari", "James", "Lora"})),
New Column("Age", Numeric, "Continuous", Format("Best", 12), Set Values([23, 26, 12, 14])),
New Column("Con", Numeric, "Continuous", Format("Best", 12), Set Values([0, 1, 0, 0]))
);
dt << New Column("Younger than Next_Row", Character, "Nominal",
Formula(If(:Age > :Age[Row() + 1], "Yes", "No")));
dt << New Column("Younger than Next_Lag", Character, "Nominal",
Formula(If(:Age > Lag(:Age, -1), "Yes", "No"))
);