<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao,
Ho un set di dati in cui:
x = ora
y = consumo idrico medio dell'albero [su 3, 2 o 1 valori a causa della perdita di dati]
Questo ciclo si ripete per mesi alla volta [24 ore al giorno], e ogni giorno "y" ha uno schema diverso. Ecco un esempio di dati di tre giorni:

Sommare le ore è un modo semplice per farlo, ma presuppone che l'uso dell'acqua sia stato lo stesso durante l'intera ora [ipotesi errata].
C'è un modo migliore per integrare l'area sotto ogni curva in modo che la risoluzione di "y" non sia di un'ora?
Ho già provato ad adattare vari modelli non lineari dalla libreria dei modelli, ma nessuno produce risultati favorevoli e non riesco a renderli adattabili ai cambiamenti quotidiani nella forma della curva di "y".
Successivamente proverò un processo gaussiano per vedere se riesco ad aumentare la risoluzione.
Grazie,
-JGL
Ecco una funzione che ti darà una nuova colonna di area.Al momento non è abbastanza intelligente da poter essere eseguito mentre si hanno i report aperti, quindi assicurati solo che la finestra possa essere ordinata.
Tutto quello che devi fare è eseguire la funzione quindi chiamare riemann_sum()
riemann_sum = Funzione (
{dt = Tabella dei dati correnti (), xcol = "Scegliere" , ycol = "Scegliere" , bycol = "Scegliere" },
{LOCALE PREDEFINITO},
Tabella dei dati correnti ( dt );
Se (xcol == "Scegliere" ,
nc = N col ( dt );
lbwidth = 130 ;
nw = Nuova finestra ( "Somma Reimann" ,
<< Modale ,
Casella di confine ( Sinistra ( 3 ), superiore( 2 ),
Casella di riepilogo V (
Casella di testo ( "Ottiene l'area sotto una curva" ),
Casella di riepilogo H (
Casella di riepilogo V (
Scatola del pannello ( "Seleziona colonne" ,
colListData = Casella di riepilogo Col ( Tutto, larghezza( lbWidth ), nRighe( min (nc, 10 ) ) )
),
),
Scatola del pannello ( "Trasforma colonne selezionate in ruoli" ,
Casella di formazione ( N col ( 2 ), Spaziatura( 3 ),
Scatola dei bottoni ( "Y, Colonne" , colListY << Aggiungere (colListData << Ottieni selezionati ) ),
colListY = Casella di riepilogo Col (
larghezza( lbWidth ),
nLinee( 1 ),
massimoselezionato( 1 ),
minItems( 1 ),
"numerico"
),
Scatola dei bottoni ( "X" , colListX << Aggiungere (colListData << Ottieni selezionati ) ),
colListX = Casella di riepilogo Col (
larghezza( lbWidth ),
nLinee( 1 ),
massimoselezionato( 1 ),
minItems( 1 ),
"numerico"
),
Scatola dei bottoni ( "Di" , colListB << Aggiungere (colListData << Ottieni selezionati ) ),
colListB = Casella di riepilogo Col (larghezza( lbWidth ), nLinee( 1 ), maxselezionato( 1 ) )
)
),
Scatola del pannello ( "Azione" ,
Casella di formazione ( N col ( 1 ),
Scatola dei bottoni ( "OK" ,
ycol = Colonna ((colListY << Ottieni oggetti )[ 1 ]);
xcolo = Colonna ((colListaX << Ottieni oggetti )[ 1 ]);
nby = articoli (colListaB << Ottieni oggetti );
Se (nby,
bycolo = Colonna ((colListaB << Ottieni oggetti )[ 1 ]),
bycolo = Nuova Colonna ( "Fakeby" , Formula( char ( 1 )));
);
),
Scatola dei bottoni ( "Annulla" , nw << Chiudi la finestra ),
Casella di testo ( " " ),
Scatola dei bottoni ( "Rimuovere" ,
colLista << Rimuovi i selezionati ;
colListX << Rimuovi i selezionati ;
colListB << Rimuovi i selezionati ;
),
)
)
)
)
)
);
);
Riassumere ( lista_by = By( bycol ) );
dt << Ordinare ( //ordina per assicurarsi che le x siano in ordine
By( bycol, xcol ),
Ordine ( Crescente, Crescente ),
Sostituisci tabella
);
list_valuesx = xcol << ottenere valori ;
list_valuesy = ycol << ottenere valori ;
Aspettare ( 0.1 );
a = matrice associativa ();
Per ( io = 1 , io <= N articoli ( lista_da ), i++,
dt << deselezionare selezionare ;
list_rows = dt << ottenere righe dove (bycol[ Riga ()] == lista_per );
//dif_x e sum_y sono dove avviene la magia
dif_x = lista_valorix[lista_righe[ 2 :: ( Riga N ( lista_righe ))]] - lista_valorix[lista_righe[ 1 :: (
Riga N ( elenco_righe ) - 1 )]];
somma_y = .5 * (list_valuesy[list_rows[ 2 :: ( Riga N ( lista_righe ))]] + lista_valori[lista_righe[ 1 :: (
Riga N ( lista_righe ) - 1 )]]);
aa[list_by ] = Somma ( dif_x
somma_y );
);
dt << Nuova Colonna ( "Integrante" , numerico, continuo, formula( aa[bycol[ Riga ()]] ) );
Colonna (dt, "Integrante" ) << eliminare la formula ; //lo fa quindi lo uccide in modo che aa possa rimanere locale
Se (!nby, dt<< Elimina colonne ({bycol}));
);