Script pour sélectionner des colonnes dans une liste dans le presse-papiersSuivi ... toujours problème.
J'ai besoin de convertir une liste de chaînes copiées à partir de valeurs de ligne qui, une fois collées ici, ressemblent à ceci
Tcea1 Atp6v1h Oprk1 Rb1cc1 Fam150a
Une fois collé dans la fenêtre de script, il ressemble à ceci
Tcea1
Atp6v1h
Oprk1
Rb1cc1
J'ai besoin de code pour convertir le contenu du presse-papiers en ceci
{Tcea1, Atp6v1h, Oprk1, Rb1cc1, Fam150a}
et cela ne fonctionne pas .... {"Tcea1, Atp6v1h, Oprk1, Rb1cc1, Fam150a"}
mais cela fait {"Tcea1", "Atp6v1h", "Oprk1", "Rb1cc1", "Fam150a"}
alors .... comment puis-je modifier la commande Get Clipboard pour générer la sortie appropriée?ou bien supprimer le "" dans une ligne de code ultérieure ?
Merci pour votre aide.
juin 2021
Voici mon script (basé sur l'aide de vous tous !) qui fonctionne bien, dans ce cas pour sélectionner les colonnes "Aasdh, Abca2, Abca7, Abcf1, Abi3" dans une table de données.
Mon nouveau problème : lorsque j'ai une longue liste de noms de colonnes dans mon presse-papiers, je ne veux pas avoir à taper ou à convertir des noms séparés par des colonnes, comme indiqué dans le script t ici.Au lieu de cela, je souhaite que le script utilise directement le presse-papiers pour sélectionner les colonnes dans le bloc de données.
Comment convertir la liste du presse-papiers en "Aasdh, Abca2, Abca7, Abcf1, Abi3...." directement dans le script ?
merci!
SCÉNARIO
//with data table where you want to select the columns now open
Names Default To Here( 1 );
dt = currentdatatable();
// Get list of data column names
col_list = dt << Get Column Names( string );
// User specified column names
cc = {Aasdh,Abca2,Abca7,Abcf1,Abi3};
For( i = 1, i <= N Items( cc ), i++,
If( Contains( col_list, Char( cc[i] ) ),
Column( dt, Char( cc[i] ) ) << Set Selected( 1 )
)
);
Modélisation statistique avancéeAutomatisation et scriptÉtudes de consommation et de marchéOrganisation du contenuAccès aux donnéesConception d'expériencesPersonnalisation de masseIngénierie de la qualité et des procédésRe : Script pour sélectionner des colonnes dans une liste dans le presse-papiersCela pourrait être plus simple.Utilisez crlf comme délimiteur pour la fonction de mots.
clipb = get clipboard();
print(clipb);
crlf = hex to char("0D0A");
col_list = words(clipb, crlf);
print(col_list);
J'ai mis en surbrillance certains noms dans Big Class, puis j'ai exécuté le code.Voici la sortie de la fenêtre du journal :
"JOE
MICHAEL
DAVID
JUDY
ELIZABETH
LESLIE
CAROL
PATTY"
{"JOE", "MICHAEL", "DAVID", "JUDY", "ELIZABETH", "LESLIE", "CAROL", "PATTY"}Re : Script pour sélectionner des colonnes dans une liste dans le presse-papiersMa réponse précédente visait à vous montrer comment accéder à l'élément dans le presse-papiers.J'ai supposé qu'à partir de là, vous seriez en mesure de créer la liste dont vous aviez besoin.Voici un exemple plus complet qui prend chaque élément trouvé dans le presse-papiers, et les ajoute à la liste appelée "theList".
Donc, si vous copiez dans le presse-papiers ce qui suit

et exécutez le script
Names Default To Here( 1 );
myClipboard = Get Clipboard();
theList ={};
i=1;
while( word(i,myClipboard,"\!t\!n\!r" ) != "",
insert into(theList,word(i,myClipboard,"\!t\!n\!r" ));
i++;
);
show(theList);
Il crée la liste JMP "theList"
theList = {"KATIE", "LOUISE", "JANE", "JACLYN", "LILLIE", "TIM", "JAMES", "ROBERT", "BARBARA", "ALICE"};Re : Script pour sélectionner des colonnes dans une liste dans le presse-papiersJ'ai trouvé un moyen Rube Goldberg-esque pour générer le format requis.Je tenterai de l'intégrer dans un script complet plus tard pour le partager.
il suit prend une liste dans le presse-papiers et la convertit au format requis .... par exemple {"Tcea1", Atp6v1h", "Oprk1", "Rb1cc1, "Fam150a"}
//here get list from clipboard first . Here the column names are genes
//COPY columns names from a row in JMP or excel into your clipboard
//PART ONE
// New data table
// Data Table( "TempGeneList" )
New Table( "TempGeneList" );
//MANUALLY paste the list of column names you want to select into first column
// Transpose data table so your list become columns
Data Table( "TempGeneList" ) << Transpose(
Label( :Column 1 ),
Output Table( "Transpose of TempGeneList" )
);
//the open table "Transpose of TempGeneList" should have your list as colmun names
Names Default To Here( 1 );
dt2 = Current Data Table();
//get the column names into a form that works
genelist = dt2 << Get Column Names( string );
//Voila
Re : Script pour sélectionner des colonnes dans une liste dans le presse-papiersMerci pour les efforts répétés pour aider à cela.Cependant, je ne pense pas être clair.
Quand Getclipboard me donne ça...
{"Tcea1, Atp6v1h, Oprk1, Rb1cc1, Fam150a"}
Je dois le convertir en ceci
{"Tcea1", Atp6v1h", "Oprk1", "Rb1cc1, "Fam150a"} que je préfère car cela transformerait les valeurs numériques en chaînes
ou dans ce
{Tcea1, Atp6v1h, Oprk1, Rb1cc1, Fam150a}
Existe-t-il un moyen simple de scripter cette transformation... ?
puis le script que vous avez fourni en juin sélectionne bien toutes les colonnes.En règle générale, mes listes contiennent des centaines d'étiquettes de colonne, j'ai donc besoin d'automatiser.
merci
Re : Script pour sélectionner des colonnes dans une liste dans le presse-papiersGet Clipboard() renvoie tout ce qui se trouve dans le presse-papiers sous forme de chaîne unique.Pour obtenir des valeurs spécifiques à partir de la chaîne renvoyée, vous devez utiliser les diverses fonctions de gestion de caractères dans JMP pour les obtenir à partir de la chaîne.
Notez que par défaut, JMP a placé un caractère de tabulation comme espacement entre les valeurs de colonne.
Si l'on ouvrait l'exemple de table de données appelée Big Class et que l'on copiait dans le tampon de collage les 10 premières lignes pour les 3 premières colonnes (Nom, Sexe, Âge), le script suivant renverrait le nom de l'individu de la 2ème ligne copiée dans le tampon de pâte.
Names Default To Here( 1 );
myClipboard = Get Clipboard();
theWord = Word( 4, myclipboard, "\!t\!n\!r" );
Show( theWord );
La fonction Word() renvoie le nième mot de la variable myclipboard, en utilisant une tabulation, un saut de ligne et un retour chariot, comme délimiteurs à rechercher pour déterminer l'espacement des mots.\!t est la structure d'échappement qui indique le caractère non imprimable pour la tabulation.
À partir de ce modèle, vous devriez être en mesure de parcourir les données et de trouver toutes les informations dont vous avez besoin.
Re : Script pour sélectionner des colonnes dans une liste dans le presse-papiersen retard....
Mes listes sont copiées dans le presse-papiers à partir d'une colonne dans le data frame JMP ou excel
J'ai besoin que le contenu du presse-papiers avec par exemple 3 copies de chaînes, columnQ, columnX, columnB soit converti en cela dans le script {columnQ, columnX, columnB}.
..... mais toutes les solutions que vous avez énumérées entraînent "" autour de la série et le script ne s'exécute pas.Comment se débarrasser du "" ??
MERCI
monClipboard = Obtenir le Presse-papiers();
/* :
"colonneQ
colonneX
colonne B"
//:*/
myClipboard = mots (Get Clipboard());
/* :
{"colonneQ
colonneX
colonneB"}
//:*/
monClipboard = mots(Obtenir le Presse-papiers(),);
/* :
{"colonneQ
colonneX
colonneB"}
//:*/
monClipboard = mots(Get Clipboard(),",");
/* :
{"colonneQ
colonneX
colonneB"}
Re : Script pour sélectionner des colonnes dans une liste dans le presse-papiersVous pouvez utiliser
myClipboard = Get Clipboard();
pour déplacer la liste dans une variable de mémoire ..... dans cet exemple, une variable appelée "myClipboard", puis en utilisant JSL, manipulez-la comme vous le souhaitez
Si votre presse-papiers contenait les éléments suivants
Aasdh,Abca2,Abca7,Abcf1,Abi3
Vous pouvez le récupérer dans une liste JMP en utilisant
myClipboard = words(Get Clipboard(),",");