Formula col per mezzo iterativo per categorieCiao,
Ho un set di dati contenente le misurazioni di un esperimento che misura il carry-over dell'analita da un campione altamente concentrato ai successivi campioni a bassa concentrazione su un analizzatore chimico. Faccio l'esperimento su diversi dispositivi e reagenti diversi, eseguendo tre esecuzioni replicate per ciascuna combinazione.
Per calcolare il livello di carry-over, per prima cosa eseguo 10 misurazioni di base su ogni combinazione di reagenti / dispositivo.
Voglio creare una nuova colonna contenente la media delle 10 misure di base per la combinazione di reagente dispositivo-corrispondente. Allegata la tabella dei dati con la colonna desiderata riempita manualmente nella colonna "Media (linea di base)".
Voglio anche una nuova colonna che prenda il risultato dei risultati dei campioni alti ("H" in col "Sample") e riempia questo valore per i dieci seguenti campioni bassi. Di nuovo, vedi allegato.
Ho qualche idea su come codificare le formule di col a nomi di dispositivi e nomi di campioni, ma mi piacerebbe farlo iterativamente, in quanto il set di dati reale è più grande.
Ri: formula Col per mezzi iterativi per categorieHo allegato una tabella dati con due nuove colonne che calcolano la media (linea di base) e il campione H. Li ho aggiunti alla tabella dei dati allegata come due nuove colonne. A meno che tu non abbia specificato correttamente i tuoi requisiti, ho scoperto che i valori medi (Baseline) calcolati manualmente non erano corretti per i mezzi Reagente / Baseline dispositivo. Sembrano essere la media per i valori di riferimento per il precedente gruppo reagente / dispositivo.
Ecco le formule che ho usato
Media (linea di base)
x = Col Mean( If( :Sample == "Baseline", :Measurement, . ), :Reagent, :Device );
If( :Sample == "Baseline",
x = .
);
x;
Campione H.
x = Col Max( :Measurement, :Reagent, :Device );
If( :Sample == "Baseline",
x = .
);
x;
Ri: formula Col per mezzi iterativi per categorieCiao @olekh ,
Se i tuoi dati sono ordinati in modo tale che le misurazioni della linea di base vengano sempre prima delle altre esecuzioni (all'interno di un campione / dispositivo / gruppo di reagenti), che è quello che hai qui, la seguente è una di queste formule di colonna che lo farà:
If( :Sample == "Baseline",
Col Mean( :Measurement, :Reagent, :Sample, :Device ),
Lag( :Name( "Mean(Baseline) Formula" ), 1 )
)
Ho allegato anche la tabella con la formula qui. Ma ero un po 'confuso che i mezzi che ho ottenuto non corrispondessero ai tuoi mezzi hardcoded. Ho controllato manualmente calcolando i mezzi di base separatamente e non corrispondevano a quello che avevi. È possibile che i mezzi che hai calcolato non fossero corretti? O forse, sto fraintendendo la tua struttura dati.
@julian
Ri: formula Col per mezzi iterativi per categorieGrazie, è perfetto! E tu hai ragione sui mezzi, ovviamente.Ri: formula Col per mezzi iterativi per categorieSì, hai ragione sui mezzi. Sembra che sia stato un pò frettoloso trasferire i valori al set di esempio. Grazie per la tua soluzione!