Je tente de transposer certaines colonnes qui commencent toutes par S (et seules ces colonnes commencent par S dans mon ensemble de données-Sample dt attaché). Parfois, il y a plus de colonnes S que d'autres, je dois donc créer une liste de colonnes commençant par S pour pouvoir transmettre cette liste au code de transposition. Bien sûr, il y a des colonnes avec d'autres en-têtes.
Je vois au moins 2 autres messages résolus qui demandent la même chose ( lien1 et lien2 ) mais j’ai du mal à dupliquer les résultats et je me demande si c’est parce que JMP14 ne se comporte pas de la même manière ou peut-être que je me trompe tout simplement?
Mon code est en dessous mais voici mon erreur quand je le lance. Mon échantillon dt est attaché.
Sous-chaîne: il ne s'agit pas d'une chaîne ou d'un nombre numérique dans l'accès ou l'évaluation de 'AllCols [i]', AllCols [/ * ### * / i]
Dans le script suivant, erreur marquée par / * ### * /
Pour (i = 1, i <= N éléments (AllCols), i ++,
Si(
Substr (AllCols [/ * ### * / i], 1, 1) == "S" &
Est manquant (Num (Substr (AllCols [i], 2))) == 0,
Insérer dans (ColList, Num (Substr (AllCols [i], 2)))
)
)
dt= current data table();
AllCols = dt << get column names;
ColList = {};
For( i = 1, i <= N Items( AllCols ), i++,
If( Substr( AllCols[i], 1, 1 ) == "S" & Is Missing( Num( Substr( AllCols[i], 2 ) ) ) == 0,
Insert Into( ColList, Num( Substr( AllCols[i], 2 ) ) )
);
);
// Create Column Lists
For(i=1,i<=nItems(ColList),i++,
ColList[i]=column("S" || char(ColList[i]));
);
Jim, il me semblait donc qu’un des éléments clés qui me manquait était la définition des noms de colonne en tant que chaîne. Je vous remercie!
Vous faisiez beaucoup plus de travail que nécessaire. Voici une retouche de votre code
dt = Current Data Table();
AllCols = dt << get column names( string );
ColList = {};
For( i = 1, i <= N Items( AllCols ), i++,
If( Substr( AllCols[i], 1, 1 ) == "S" & Is Missing( Num( Substr( AllCols[i], 2 ) ) ) == 0,
Insert Into( ColList, AllCols[i])
)
);
dt2 = dt << Transpose(
columns( eval( ColList )));