<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao, sto cercando di utilizzare selezionare dove contare il numero di righe che soddisfano i criteri in 2 colonne utilizzando un ciclo for. All'inizio del mio script (non mostrato) utilizzo una finestra di dialogo per consentire all'utente di scegliere 2 colonne e questo finisce in un elenco (collist). Quindi utilizzo un array associativo su ciascuno per determinare i valori univoci per colonna. Una seconda finestra di dialogo consente all'utente di scegliere un sottoinsieme di quei valori univoci per colonna che finisce in un altro elenco (poschosen). Il problema con cui sto lottando è l'inserimento delle colonne da collist nella funzione select where. Ho provato una serie di diversi tentativi di eval, expr, eval expr, parse, ecc. Per provare a inserirli in modo appropriato, ma non riesco proprio a trovare il modo corretto. Spero che qualcuno abbia un consiglio.
Ecco il mio codice adattato per i dati di esempio: popolarità dei bambini. Vorrei sostituire i valori (riga 14) School e Goals rispettivamente con collist[1] e collist[2]. Grazie in anticipo per il tuo aiuto Elisabetta
dattable=Open( "$SAMPLE_DATA/Children's Popularity.jmp" );
poschosen={"Ridge","Sand","main","stop","Popular","Grades","stop"};
stoppos={4,7}; //determine the position of the separator "stop"
Test1pos=subtract(stoppos[1],1); //determine the # of school column values chosen
Test2posStart=add(stoppos[1],1); //determine where in the list the Goals column values start
collist={"School", "Goals"};
sumpositives=0;
For (i = 1, i <= Test1pos, i++, //loop through the chosen school column values
For(f=Test2posStart, f
dattable< & Goals==Poschosen);
num_selected=nrows(dattable<
sumpositives=sumpositives+num_selected; //add the current selection count to previous count
print(sumpositives); //should be 56 in this example
); //end of inner for loop
); //end of outer for loop
Ho cercato per sempre di capirlo, finalmente ho trovato questo thread. Grazie!
Non importa, l'ho appena capito (ovviamente subito dopo aver postato la domanda, doh) ... la riga 14 funziona quando faccio questo:
dattable< & as column(dattable,collist[2])==Poschosen);