Come funzionano le operazioni che coinvolgono due tabelle di dati separate?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ad esempio, quando voglio dividere ogni valore della colonna 1 dalla tabella dati 1 di ogni valore della colonna 2 dalla tabella dati 2 . Mi sembra di avere problemi a farlo e mi chiedo perché venga visualizzato questo errore "L'accesso alla tabella di dati con ambito richiede una colonna o una variabile della tabella di dati{1} nell'accesso o nella valutazione di 'dtbinsum:column' , dtbinsum:column/*### */(Nrows ) /*####*/"
La parte del mio script è simile a questa:
//Inizio dello script
dt = tabelladaticorrente();
dtbinsum = dt << Sommario(
Gruppo( :File dati, :ID lotto, :SBIN ),
Frequenza( "Nessuno" ),
Peso( "Nessuno" ),
formato del nome della colonna delle statistiche ("colonna"),
Link alla tabella dati originale( 0 )
);
dtbinsum<< Seleziona Dove( dtbinsum:sbin != 1 );
dtbinsum<< Elimina righe;
dtbinsum2 = dt << Sommario(
Gruppo( :ID lotto ),
N(:SBIN),
Frequenza( "Nessuno" ),
Peso( "Nessuno" )
);
resa = {};
for(i=0, i
yield_temp = (dtbinsum:column(Nrows ))/(dtbinsum2:colonna(N(SBIN) ));
Inserisci in(resa,resa_temp);
);
Mostra(rendimento);
//Fine dello script
So che il mio modo non è probabilmente il modo più efficiente per farlo, per non parlare dell'errore che mostra, ma qualcuno ha una soluzione a questo?
Ri: Come funzionano le operazioni che coinvolgono due tabelle dati separate?questo è quanto ho ottenuto prima di ricevere il seguente errore:
Nome irrisolto: in accesso o valutazione di " , Nome(" ")/*###*/
codice:
dt1 = tabella dati ( "tavolo principale" ) ;
dt2 = tabella dati ( "Divisione tabella REF" ) ;
colonne = dt1 << ottenere i nomi delle colonne ( corda ) ;
per ( io = 2 , io <= N col ( dt1 ) , io ++,
una_colonna = colonne [ io ] ;
vals = ( Colonna ( dt1 , una_colonna ) << getValues )
( Colonna ( dt2 , una_colonna ) << getValues ) ;
dt1 << Nuova colonna ( una_colonna , Numerico , Valori ( vals )) ;
) ;
lo script riesce a fare un giro nel ciclo creando così una colonna con valori corretti.
Ri: Come funzionano le operazioni che coinvolgono due tabelle dati separate?Potresti darmi suggerimenti su come modificare la tua formula per funzionare in un ciclo for?
dovrebbe fare la stessa cosa del tuo script ma per tutte le colonne, il nome per la nuova tabella dovrebbe essere l'intestazione della colonna richiesta + Quoziente
dt1 = tabella dati ("tabella principale");
dt2 = tabella dati ("ref table");
colonne = dt << ottenere i nomi delle colonne ( corda ) ;
for ( i = 2, i <= N colonne (myTable), i++,
// ho provato diverse versioni di un riferimento alle colonne nella mia tabella principale ma non riesco a farlo funzionare
vals = ( Colonna ( dt1 , colonna(i) ) << getValues )
( Colonna ( dt2 , colonna (es ) ) << getValues ) ;
dt1 << Nuova colonna (col , Numerico , Continuo , Valori ( vals )) ;
);
BR
Anders
Ri: Come funzionano le operazioni che coinvolgono due tabelle dati separate?Grazie Ian, ora che hai sottolineato che le sue operazioni sagge sugli elementi, ora ha molto senso.
Ri: Come funzionano le operazioni che coinvolgono due tabelle dati separate?( Colonna ( dt1 , "Numeratore" ) << getValues ) inserisce i valori dalla colonna specificata in un vettore riga (che, nell'esempio, è uguale a v1). ( Colonna ( dt2 , "Denominatore" ) << getValues ) fa la stessa cosa con l'altra colonna (che in realtà è lo stesso vettore riga di v2). Poi il
L'operatore richiede una divisione per elemento, ovvero divide il primo elemento del primo vettore per il primo elemento del secondo vettore per ottenere il primo elemento del vettore del risultato (e così via per gli altri elementi).
Dai un'occhiata alla sezione "Matrici" nel capitolo 7 di "Aiuto > Libri > Guida allo scripting".
Ri: Come funzionano le operazioni che coinvolgono due tabelle dati separate?Grazie Ian, per me funziona ma posso chiederti di questa linea in particolare?
vals = ( Colonna ( dt1 , "Numeratore" ) << getValues )
( Colonna ( dt2 , "Denominatore" ) << getValues ) ;
^
Il modo in cui capisco JSL è che i due punti aiutano a identificare le colonne, se usati in questo modo, come funzionano?
Ri: Come funzionano le operazioni che coinvolgono due tabelle dati separate?Qualcosa del genere forse:
NamesDefaultToHere ( 1 ) ;
// Crea un paio di tabelle
v1 = J ( 10 , 1 , Intero casuale ( 1 , 5 )) ;
v2 = J ( 10 , 1 , Intero casuale ( 1 , 5 )) ;
dt1 = Nuova tabella ( "Tabella 1" , Nuova colonna ( "Numeratore" , Numerico , Ordinale , Valori ( v1 ))) ;
dt2 = Nuova tabella ( "Tavolo 2" , Nuova colonna ( "Denominatore" , Numerico , Ordinale , Valori ( v2 ))) ;
// Aggiunge una colonna quoziente alla tabella 1
Aspettare ( 3 ) ;
vals = ( Colonna ( dt1 , "Numeratore" ) << getValues )
( Colonna ( dt2 , "Denominatore" ) << getValues ) ;
dt1 << Nuova colonna ( "Quoziente" , Numerico , Continuo , Valori ( vals )) ;