numéro de colonne<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Salut tout le monde,
comment puis-je obtenir le numéro de colonne dans un tableau?
comme ci-dessous, l'en-tête 3 est la colonne n ° 3 du tableau ...
| En-tête 1 | En-tête 2 | En-tête 3 |
|---|
| | |
| | |
Re : numéro de colonneJe suis désolé, mais ce message est passé de mauvaises pratiques de codage à de pires pratiques de codage.Comme le dit le proverbe, il existe plusieurs façons d'écorcher un chat et il existe plusieurs façons d'écrire du code pour exécuter la même fonction.Cependant, quel est le meilleur moyen ?Généralement, nous voudrons considérer au MOINS les trois principaux facteurs vitesse, longueur de code et tendance aux erreurs.Pour cette raison,
le nombre de colonnes = n articles ( dt << Obtenir les noms de colonne ()) ;
est vraiment une mauvaise programmation.Ce que vous devez utiliser est :
le nombre de colonnes = ncols ( dt ) ;
L'évidence est que c'est plus court, mais c'est aussi plus rapide.Le premier doit créer une liste de tous les noms de colonnes, puis les compter.Ce dernier saisira simplement la variable table.
Suivant, colonne3 = colonne ( dt , 3 ) ; ne doit jamais être utilisé.La première raison est b/c column3 est un mauvais nom.Je ne vais pas expliquer pourquoi, mais vous pouvez lire ce post pour plus de précisions Qu'est-ce qu'il y a dans un nom? Anti-Patterns à un problème difficile .La deuxième raison est due à l'étape supplémentaire que vous introduisez. Pourquoi faire:
colonne_nr = Contient ( dt << obtenir les noms de colonnes () , Colonne ( "hauteur" )) ;
colonne = colonne ( dt , colonne_nr ) ;
Alors que vous pouviez simplement :
colonne = Colonne ( dt , "hauteur" ) ;
Encore une fois, ce dernier est plus court et plus rapide.
Re : numéro de colonnesympa ... et oui ça marche parfaitement merci
Re : numéro de colonneJ'aime où vous vous dirigez avec ce MS.Je pourrais commencer par un
dt = Tableau de données actuel () ;
Et si la question de llupo0 était combien de colonnes y a-t-il, vous pourriez la modifier pour qu'elle ressemble à ceci :
le nombre de colonnes = n articles ( dt << Obtenir les noms de colonne ()) ;
Si finalement intéressé, llupo0 pourrait alors faire référence aux colonnes par numéro :
colonne3 = colonne ( dt , 3 ) ;
valeur1_colonne3 = colonne3 [ 1 ] ;
Re : numéro de colonnePourriez-vous expliquer un peu pourquoi vous voulez cela? 99 fois sur 100, cette valeur n'est pas bénéfique et il y a une meilleure méthodologie de codage qui devrait être mise en œuvre.Cela est particulièrement vrai car pour obtenir ce numéro, vous devez connaître la référence de la colonne ou le nom de la colonne, qui sont tous deux plus précieux.
Re : numéro de colonneVoici une approche utilisant Contient qui fait ce que (je pense) vous demandez:
dt = Ouvrir ( "$SAMPLE_DATA/Grande classe.jmp" ) ;
//Travaux!
colonne_nr = Contient ( dt << obtenir les noms de colonnes ( chaîne ) , "hauteur" ) ;
colonne_nr = Contient ( dt << obtenir les noms de colonnes () , Colonne ( "hauteur" )) ;
colonne_nr = Contient ( dt << obtenir les noms de colonnes () , expr ( hauteur )) ;
// Ne fonctionne pas
colonne_nr = Contient ( dt << obtenir les noms de colonnes () , hauteur ) ;
Re : numéro de colonnesans utiliser de boucle pour !!!