Ri: I dati corrispondenti possono essere ottenuti direttamente senza colonne ausiliarie?Non sono sicuro di aver capito completamente cosa stai cercando di fare. Ad esempio, stai cercando di determinare il numero di maschi di 13 anni nella tabella dei dati e di inserirlo in una colonna senza creare la colonna di concatenazione per età e genere? Se è quello che vuoi, penso che questa colonna formula funzionerebbe:

Si noti che questa formula conta solo il numero di voci non mancanti nella tabella dei dati. In questo caso ho scelto di contare il numero di voci non mancanti per la colonna Nome per età e sesso. Non sono necessarie colonne intermedie o nuove tabelle.
Ri: I dati corrispondenti possono essere ottenuti direttamente senza colonne ausiliarie?Non ho testato questo codice, ma dovresti vedere almeno l'approccio che sto adottando e l'approccio funzionerà.
Names Default To Here( 1 );
dtBig = Data Table( "Big Class" );
dtSmall = Data Table( "Big Class By (age, sex)" );
dt << New Column( "N Rows" );
For( i = 1, i <= N Rows( dtSmall ), i++,
foundRows = dtBig << get rows where(
Substr( :agesex[i], 1, Length( :agesex[i] ) - 1 ) == :age & Substr( agesex[i], -1 ) == :sex
);
If( N Rows( foundRows ) > 0,
dtBig:N Rows[foundRows] = dtSmall:N Rows[i]
);
);
Ri: I dati corrispondenti possono essere ottenuti direttamente senza colonne ausiliarie?Grazie Jim!
Il codice non è stato eseguito.

Ri: I dati corrispondenti possono essere ottenuti direttamente senza colonne ausiliarie?Bene, JMP non riesce a trovare la piccola tabella di dati. Da quello che ho potuto vedere nella tua proposta principale, il nome della tabella di dati per la tabella di dati di piccole dimensioni è stato chiamato "Grande classe per (età, sesso)". Quello non è il nome corretto o quella tabella di dati non esiste più. Basta cambiare i nomi dei riferimenti della tabella di dati alla tabella su cui si desidera eseguire lo script ed eseguirlo.Ri: I dati corrispondenti possono essere ottenuti direttamente senza colonne ausiliarie?L'ho modificato più volte, ma non ho ancora soluzione.
Vai avanti e chiedi il tuo aiuto. "Grazie Jim!Ri: I dati corrispondenti possono essere ottenuti direttamente senza colonne ausiliarie?Prova questo
names default to here(1);
// Create the 2 Example data tables
dtBig = open("$SAMPLE_DATA/big class.jmp");
dtSmall = New Table( "Data agesex",
Add Rows( 12 ),
New Column( "agesex",
Character,
"Nominal",
Set Values(
{"12F", "12M", "13F", "13M", "14F", "14M", "15F", "15M", "16F", "16M",
"17F", "17M"}
)
),
New Column( "N Rows",
Numeric,
"Continuous",
Format( "Fixed Dec", 12, 0 ),
Set Values( [5, 3, 3, 4, 5, 7, 2, 5, 2, 1, 1, 2] )
)
);
// Create the new column
dtBig << New Column( "N Rows" );
// Move the data as required
For( i = 1, i <= N Rows( dtSmall ), i++,
foundRows = dtBig << get rows where(
Num( Substr( dtSmall:agesex[i], 1, Length( dtSmall:agesex[i] ) - 1 ) ) == :age &
Substr( dtSmall:agesex[i], -1 ) == :sex
);
If( N Rows( foundRows ) > 0,
dtBig:N Rows[foundRows] = dtSmall:N Rows[i]
);
);Ri: I dati corrispondenti possono essere ottenuti direttamente senza colonne ausiliarie?Grazie Jim!
dtSmall
dtBig = Open( "$SAMPLE_DATA/big class.jmp" );
dtSmall = dtBig << Summary(
Group( :age, :sex ),
Freq( "None" ),
Weight( "None" ),
Link to original data table( 0 ),
statistics column name format( "column" )
);
c1 = Column( 1 ) << Get Name;
c2 = Column( 2 ) << Get Name;
dtSmall << Add Multiple Columns( c1 || c2, 1, after( As Column( 2 ) ), Character, "Nominal" );
Wait( 0 );
Column( 3 ) << Formula( Char( :age ) || :sex );
dtSmall << run formulas;
Column( 3 ) << deleteFormula;
dtSmall << delete columns( 1 :: 2 );
I dati corrispondenti possono essere ottenuti direttamente senza colonne ausiliarie?Ad esempio, utilizzare la colonna "age" e le combinazioni di colonne "sex" di "Big class.jMP" per generare nuovi nomi di colonna su un'altra tabella.
Come abbinare i dati di un'altra tabella direttamente attraverso la colonna "età" e "sesso" senza aggiungere una colonna ausiliaria nella tabella grande?
Grazie!
Scripting