Differenza di colonna: sintassi JSLCiao a tutti,
Come accedere ai contenuti di una colonna in base al riferimento della colonna? Poiché i nomi delle mie colonne continuano a cambiare ad ogni ciclo nello script, non posso semplicemente usare il nome della colonna per sottrarre.
dt è la mia tabella di dati e ha 30 colonne. Voglio creare una nuova colonna con dt [28] - dt [30].
Qualcuno può aiutarmi con la sintassi?
Lo apprezzo molto. Grazie.
Ri: Colonna differenza - sintassi JSLQuesto esempio mostra come le variabili possono essere utilizzate per definire dinamicamente le colonne quando 1) usando la notazione di matrice per le tabelle in JMP 13 o 2) impostando una formula.
dt = New Table("Table Subscripting",
New Column("a", Set Values([1 2 3 4 5])),
New Column("b", Set Values([44 22 77 55 99])),
New Column("c", Set Values([59, 58, 57, 56, 55]))
);
startCol = 1;
endCol = N Col(dt);
// New column with the diff between endCol and startCol can be filled
// 1) with static values using matrix notation (JMP 13),
dt << New Column("Delta");
dt[0, endCol + 1] = dt[0, endCol] - dt[0, startCol];
// 2) or by a Column Formula
// (expression must partly be pre-evaluated if variables are used)
F = Eval Expr(Expr(Column(endCol))[] - Expr(Column(startCol))[]);
dt << New Column("Delta2", Formula(Name Expr(F)));Ri: Colonna differenza - sintassi JSLCiao Mark,
Apparentemente, non posso usare questa sintassi di
dt << Nuova colonna ("Delta",
Numerico,
Formula (Column (dt, startcol) - Column (dt, endcol))
);
startcol = 28 (che è derivato dopo una particolare colonna)
e endCol = ncols (dt);
Dal momento che le mie tabelle di dati, il numero di colonne continua a cambiare dopo ogni ciclo, non posso usare un numero. C'è qualche altro modo?
Ri: Colonna differenza - sintassi JSLIl 4 implica automaticamente che è la fine del tavolo? Poiché le colonne della tabella dati continuano a cambiare, posso usare
dt [1 :: nrow (dt), endcol + 1] = dt [1 :: nrow (dt), startcol] - dt [1 :: nrow (dt), endcol];
dove endCol = ncols (kdt); e startcol = 28 (Questo è derivato dopo una particolare colonna)
Sto cercando di rendere tutto dinamico.
Non penso che funzioni. Quali sono i tuoi pensieri su questa Melanie?Ri: Colonna differenza - sintassi JSLInoltre, se esegui JMP 13, puoi iscriverti in una tabella dati utilizzando dt [row, column], e puoi usare gli intervalli (1 :: 4).
Ecco un breve esempio che aggiunge una nuova colonna e imposta i suoi valori sulla colonna 3 - columnn 1:
dt = New Table( "Table Subscripting",
New Column( "a", Set Values( [1 2 3 4 5] ) ),
New Column( "b", Set Values( [44 22 77 55 99] ) ),
New Column( "c", Set Values( [59, 58, 57, 56, 55] ) )
);
dt << New Column( "new column" );
dt[1::nrow(dt), 4] = dt[1::nrow(dt), 3] - dt[1::nrow(dt), 1];
Ri: Colonna differenza - sintassi JSLC'è più di un modo per fare riferimento a una colonna:
- :nome
- Colonna ("nome")
- Colonna (riferimento tabella dati, "nome")
- Colonna (indice)
- Colonna (riferimento tabella di dati, indice)
Sospetto che le ultime due forme basate sulla funzione Column () saranno utili nel tuo caso.