numero di colonna<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao a tutti,
come posso ottenere il numero di colonna in una tabella?
come sotto l'intestazione 3 è la colonna n. 3 nella tabella ...
| Intestazione 1 | Intestazione 2 | Intestazione 3 |
|---|
| | |
| | |
Re: numero di colonnaMi dispiace, ma questo post è passato da cattive pratiche di codifica a peggiori pratiche di codifica.Come si suol dire, ci sono diversi modi per scuoiare un gatto e ci sono diversi modi per scrivere codice per eseguire la stessa funzione.Tuttavia, qual è il modo migliore?In generale, vorremo considerare ALMENO i tre fattori principali: velocità, lunghezza del codice e propensione all'errore.Per questa ragione,
numero di colonne = n articoli ( dt << Ottieni nomi di colonna ()) ;
è davvero una programmazione scadente.Quello che dovresti usare è:
numero di colonne = ncols ( dt ) ;
L'ovvio è che è più breve, ma è anche più veloce.Il primo deve creare un elenco di tutti i nomi delle colonne e quindi contarli.Quest'ultimo prenderà semplicemente la variabile table.
Prossimo, colonna3 = colonna ( dt , 3 ) ; non dovrebbe mai essere usato.Il primo motivo è b/c column3 è un nome scadente.Non entrerò nel perché, ma puoi leggere questo post per chiarimenti Cosa c'è in un nome? Anti-modelli a un problema difficile .Il secondo motivo è b/c del passaggio aggiuntivo che stai introducendo. Perchè fare:
colonna_n = Contiene ( dt << ottenere i nomi delle colonne () , Colonna ( "altezza" )) ;
colonna = colonna ( dt , colonna_n ) ;
Quando potevi semplicemente:
colonna = Colonna ( dt , "altezza" ) ;
Ancora una volta, quest'ultimo è più breve e più veloce.
Re: numero di colonnabello ... e sì, funziona perfettamente grazie
Re: numero di colonnaMi piace dove stai andando con questo MS.Potrei iniziare con a
dt = Tabella dei dati correnti () ;
E se la domanda di llupo0 fosse quante colonne ci sono, potresti modificarla in modo che assomigli a questa:
numero di colonne = n articoli ( dt << Ottieni nomi di colonna ()) ;
Se alla fine interessato, llupo0 potrebbe quindi fare riferimento alle colonne per numero:
colonna3 = colonna ( dt , 3 ) ;
valore1_colonna3 = colonna3 [ 1 ] ;
Re: numero di colonnaPotresti spiegare un po 'perché lo vuoi? 99 volte su 100, questo valore non è vantaggioso e c'è una metodologia di codifica migliore che dovrebbe essere implementata.Ciò è particolarmente vero poiché per ottenere questo numero è necessario conoscere il riferimento della colonna o il nome della colonna, che sono entrambi più preziosi.
Re: numero di colonnaDi seguito è riportato un approccio utilizzando Contiene questo fa quello che (penso) stai chiedendo:
dt = Aprire ( "$SAMPLE_DATA/Classe grande.jmp" ) ;
//Lavori!
colonna_n = Contiene ( dt << ottenere i nomi delle colonne ( corda ) , "altezza" ) ;
colonna_n = Contiene ( dt << ottenere i nomi delle colonne () , Colonna ( "altezza" )) ;
colonna_n = Contiene ( dt << ottenere i nomi delle colonne () , espr ( altezza )) ;
//Non funziona
colonna_n = Contiene ( dt << ottenere i nomi delle colonne () , altezza ) ;
Re: numero di colonnasenza usare un loop per !!!