Col Sum fa riferimento alla tabella dati errataHo due tabelle di dati aperte nel mio script, ad esempio dt1 e dt2, e sono state aperte in questo ordine. dt1 ha una colonna con una variabile di stato, in cui qualsiasi cosa diversa da "1" rappresenta un tipo di valore anomalo. Voglio contare il numero di valori anomali in dt1. Questo è quello che ho ...
n_out = Col Sum(If( dt1:STATUS == "1", 0, 1));
Tuttavia questo non sembra funzionare. Sembra che il codice su stia cercando di fare riferimento a dt2 come è stato aperto più di recente. Se faccio clic su dt1 per portare la finestra in primo piano e poi eseguo di nuovo il codice, funziona. Perché il mio riferimento a dt1: STATUS non funziona?
Grazie per l'aiuto.
Ri: Col Sum fa riferimento alla tabella di dati sbagliataQuesto codice produce anche il valore corretto di 9:
Names Default to Here( 1 );
dt1 = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt2 = Open( "$SAMPLE_DATA/Fitness.jmp" );
dt1 << New Column( "Outlier", Formula( :height > 65 ) );
n outliers = Col Sum( dt1:Outlier );
Qui ho usato un'altra colonna di dati con una formula che usa l'espressione per verificare un valore anomalo. Questo risultato me lo dice Col Sum () potrebbe non essere inteso per funzionare con qualsiasi espressione ma in particolare con una colonna di dati. (Suggerimento, suggerimento: COL SUM ()). Non so da dove provenga il valore di 4 quando si utilizza l'espressione per il test dei valori anomali invece del riferimento di una colonna di dati.
Ri: Col Sum fa riferimento alla tabella di dati sbagliataPerchè no?
Ri: Col Sum fa riferimento alla tabella di dati sbagliataOk... Ok.... Quanto segue produce il conteggio a 9.
Nomi predefiniti qui (1);
dt1 = Open ("$ SAMPLE_DATA / Big Class.jmp");
dt2 = Apri ("$ SAMPLE_DATA / Fitness.jmp");
n ht over 60 = Sum ((dt1: height << Get As Matrix)> 65);
Questo significa che la conversione in matrice è una soluzione?
Ri: Col Sum fa riferimento alla tabella di dati sbagliataStesso problema ... Il mio codice:
Nomi predefiniti qui (1);
dt1 = Open ("$ SAMPLE_DATA / Big Class.jmp");
dt2 = Apri ("$ SAMPLE_DATA / Fitness.jmp");
num_tall = Col Sum (dt1: height> 65);
mostra (num_tall);
produce num_tall = 9 sul tuo sistema?
Sto usando JMP 13 se c'è qualcosa a che fare con esso.
Ri: Col Sum fa riferimento alla tabella di dati sbagliataMy Dumb Question for the Day: cosa succede se esci da JMP e riavvialo?
Ri: Col Sum fa riferimento alla tabella di dati sbagliataGrande idea... Quindi ho eseguito il seguente codice:
Nomi predefiniti qui (1);
dt1 = Open ("$ SAMPLE_DATA / Big Class.jmp");
dt2 = Apri ("$ SAMPLE_DATA / Fitness.jmp");
num_tall = Col Sum (dt1: height> 65);
mostra (num_tall);
Questo è il out out:
Nomi predefiniti qui (1);
dt1 = Open ("$ SAMPLE_DATA / Big Class.jmp");
dt2 = Apri ("$ SAMPLE_DATA / Fitness.jmp");
num_tall = Col Sum (dt1: height> 65);
mostra (num_tall);
/ *:
num_tall = 4;
Poi quando clicco su un tavolo Big Class (portandolo in prima linea), ottengo:
num_tall = Col Sum (dt1: height> 65);
mostra (num_tall);
/ *:
num_tall = 9;
Qual è la risposta corretta.
C'è qualcosa di sbagliato nelle mie impostazioni, o è solo nel modo in cui è progettato JSL?
Ri: Col Sum fa riferimento alla tabella di dati sbagliataPuoi anche provare questo codice:
Names Default to Here( 1 );
dt1 = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt2 = Open( "$SAMPLE_DATA/Fitness.jmp" );
n ht over 60 = Sum( (Column( dt1, 4 ) << Get As Matrix) > 60 );
Ri: Col Sum fa riferimento alla tabella di dati sbagliataPerché non ti allontani dal problema originale e provi qualcosa di più semplice. Ad esempio, con valori diversi in ciascuna tabella di dati, prova a fare riferimento a una sola posizione per vedere quale valore viene restituito. Per esempio,
Names Default to Here( 1 );
dt1 = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt2 = Open( "$SAMPLE_DATA/Fitness.jmp" );
value = Column( dt1, 4 )[2]; // second row of :height in Big Class?
Show( value );
Sembra che funzioni.
Ri: Col Sum fa riferimento alla tabella di dati sbagliataGrazie per la risposta.
Ho lo stesso problema.
So che la risposta per un particolare esempio è n_out = 3. Sul mio schermo vedo dt1 sullo sfondo come è stato aperto per primo, e poi su dt2. Quando eseguo questa riga di codice ottengo n_out = 0. Ma se clicco sulla tabella dt1 (portandolo in prima linea nel mio schermo) e poi eseguo di nuovo il codice, ottengo n_out = 3.
Questo è il motivo per cui penso che il problema sia far riferimento alla tabella sbagliata.
Ri: Col Sum fa riferimento alla tabella di dati sbagliataHo anche provato il seguente:
n_out = Col Sum (NOT (dt1: STATUS == "1")))
e ancora non funziona.
So che la risposta per un particolare esempio è 3. Sul mio schermo vedo dt1 sullo sfondo come è stato aperto per primo, e poi su dt2. Quando eseguo questa riga di codice ottengo n_out = 0. Ma se clicco sulla tabella dt1 (portandolo in prima linea nel mio schermo) e poi eseguo di nuovo il codice, ottengo n_out = 3.
Questo è il motivo per cui penso che il problema sia far riferimento alla tabella sbagliata.
Ri: Col Sum fa riferimento alla tabella di dati sbagliataprova questo modulo e vedi se funziona
n_out = Col Sum( dt1:STATUS != "1");
Ri: Col Sum fa riferimento alla tabella di dati sbagliataIn base alla tua descrizione, sembra che non dovrebbe assolutamente accadere. Non vedo alcun problema nel tuo codice. Potrebbe essere un buon momento per chiamare il supporto tecnico JMP.