Ciao,
Ho una tabella di dati con 2 colonne come la seguente:
group value
<SPAN class="hljs-number">1</SPAN> <SPAN class="hljs-number">10</SPAN>
<SPAN class="hljs-number">1</SPAN> <SPAN class="hljs-number">20</SPAN>
<SPAN class="hljs-number">1</SPAN> <SPAN class="hljs-number">25</SPAN>
<SPAN class="hljs-number">2</SPAN> <SPAN class="hljs-number">5</SPAN>
<SPAN class="hljs-number">2</SPAN> <SPAN class="hljs-number">10</SPAN>
<SPAN class="hljs-number">2</SPAN> <SPAN class="hljs-number">15</SPAN>
Voglio creare una nuova colonna, "diff", che calcoli le differenze tra righe consecutive, raggruppate per "gruppo", quindi avrei qualcosa del genere:
group value diff
<SPAN class="hljs-number">1</SPAN> <SPAN class="hljs-number">10</SPAN> . <SPAN class="hljs-comment"># because there is a no previous value</SPAN>
<SPAN class="hljs-number">1</SPAN> <SPAN class="hljs-number">20</SPAN> <SPAN class="hljs-number">10</SPAN> <SPAN class="hljs-comment"># value[2] - value[1]</SPAN>
<SPAN class="hljs-number">1</SPAN> <SPAN class="hljs-number">25</SPAN> <SPAN class="hljs-number">5</SPAN> <SPAN class="hljs-comment"># value[3] value[2]</SPAN>
<SPAN class="hljs-number">2</SPAN> <SPAN class="hljs-number">5</SPAN> . <SPAN class="hljs-comment"># because group is changed</SPAN>
<SPAN class="hljs-number">2</SPAN> <SPAN class="hljs-number">10</SPAN> <SPAN class="hljs-number">5</SPAN> <SPAN class="hljs-comment"># value[5] - value[4]</SPAN>
<SPAN class="hljs-number">2</SPAN> <SPAN class="hljs-number">15</SPAN> <SPAN class="hljs-number">5</SPAN> <SPAN class="hljs-comment"># value[6] - value[5]</SPAN>
</CODE><CODE class="hljs language-r">
Per favore, puoi aiutarmi con il jsl per la formula della colonna?
Grazie molto,
Alicia
Se la tabella è sempre ordinata per gruppo come il tuo esempio, puoi farlo con un'istruzione if:
If( Lag( :group ) == :group,
:value - Lag( :value ),
.
)
Funziona perfettamente! Grazie mille