Di seguito è riportata un'opzione che utilizza Col Cumulative Sum() con confronto
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(14),
Compress File When Saved(1),
New Column("Column 1",
Character,
"Nominal",
Set Values(
{"No", "No", "No", "No", "Yes", "No", "No", "No", "No", "No", "Yes",
"No", "No", "No"}
)
),
New Column("Column 2",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3])
)
);
dt << New Column("Series", Numeric, Continuous, Formula(
Col Cumulative Sum(:Column 1 == "Yes") + 1
));Grazie!!
Ora ho bisogno di ulteriore aiuto, se ho un'altra colonna e voglio che "ripristini" il conteggio, in questo modo:
| Colonna 0 | Colonna 1 | Serie |
| Rosso | NO | 1 |
| Rosso | NO | 1 |
| Rosso | NO | 1 |
| Rosso | NO | 1 |
| Rosso | SÌ | 2 |
| Rosso | NO | 2 |
| Rosso | NO | 2 |
| Blu | NO | 1 |
| Blu | NO | 1 |
| Blu | NO | 1 |
| Blu | SÌ | 2 |
| Blu | NO | 2 |
| Blu | NO | 2 |
| Blu | NO | 2 |
| Verde | NO | 1 |
| Verde | NO | 1 |
| Verde | NO | 1 |
| Verde | NO | 1 |
| Verde | NO | 1 |
| Verde | SÌ | 2 |
| Verde | NO | 2 |
| Verde | NO | 2 |
Ho provato questo:
dt << New Column("Series", Numeric, Continuous, Formula(If( :column 0 == Lag( :column 0, 1 ),
(Col Cumulative Sum(:column 1 == 1) + 1),
(Col Cumulative Sum(:column 1 == 1) + 0)
)));
Col Somma cumulativa() supporta quindi puoi usare :Column 0 come byvar ed eseguirà il calcolo separatamente per ogni valore trovato da :Column 0
Ciao, ho bisogno di aiuto per creare una colonna, usando JSL, che riempia una serie e aumenti di uno quando viene attivato da un altro valore di colonna.
Come la colonna 2 di seguito, ogni volta che c'è un "Sì" nella colonna 1 aumenta di 1 il valore nella colonna 2.
Spero di essere stato abbastanza chiaro.
| Colonna 1 |
Colonna 2 |
| NO |
1 |
| NO |
1 |
| NO |
1 |
| NO |
1 |
| SÌ |
2 |
| NO |
2 |
| NO |
2 |
| NO |
2 |
| NO |
2 |
| NO |
2 |
| SÌ |
3 |
| NO |
3 |
| NO |
3 |
| NO |
3 |