Script per selezionare colonne da un elenco negli appuntiFollow-up .... ancora problema.
Ho bisogno di convertire un elenco di stringhe copiate dai valori di riga che, una volta incollate qui, hanno questo aspetto
Tcea1 Atp6v1h Oprk1 Rb1cc1 Fam150a
Quando incollato nella finestra dello script, appare così
Tcea1
Atp6v1h
Opera1
Rb1cc1
Ho bisogno di codice per convertire il contenuto degli appunti in questo
{Tcea1, Atp6v1h, Oprk1, Rb1cc1, Fam150a}
e questo non funziona .... {"Tcea1, Atp6v1h, Oprk1, Rb1cc1, Fam150a"}
ma questo fa {"Tcea1", "Atp6v1h", "Oprk1", "Rb1cc1", "Fam150a"}
quindi .... come posso modificare il comando Ottieni appunti per generare l'output corretto?o in alternativa rimuovere il "" in una riga di codice successiva?
Grazie per l'aiuto.
giugno 2021
Ecco il mio script (basato sull'aiuto di tutti voi!) Che funziona bene, in questo caso per selezionare le colonne "Aasdh, Abca2, Abca7, Abcf1, Abi3" in una tabella di dati.
Il mio nuovo problema: quando ho un lungo elenco di nomi di colonne nei miei appunti, non voglio dover digitare o convertire in nomi separati da colonne come mostrato nello script t qui.Voglio invece che lo script utilizzi direttamente gli appunti per selezionare le colonne nel frame di dati.
Come si può convertire l'elenco degli appunti in "Aasdh,Abca2,Abca7,Abcf1,Abi3...." direttamente all'interno dello script?
Grazie!
SCRITTURA
//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 )
)
);
Modellazione statistica avanzataAutomazione e scriptingConsumatori e ricerche di mercatoOrganizzazione dei contenutiAccesso ai datiProgettazione di esperimentiPersonalizzazione di massaQualità e ingegneria di processoRi: Script per selezionare colonne da un elenco negli appuntiQuesto potrebbe essere più semplice.Usa crlf come delimitatore per le parole funzione.
clipb = get clipboard();
print(clipb);
crlf = hex to char("0D0A");
col_list = words(clipb, crlf);
print(col_list);
Ho evidenziato alcuni nomi in Big Class e poi ho eseguito il codice.Questo è l'output dalla finestra di registro:
"JOE
MICHAEL
DAVID
JUDY
ELIZABETH
LESLIE
CAROL
PATTY"
{"JOE", "MICHAEL", "DAVID", "JUDY", "ELIZABETH", "LESLIE", "CAROL", "PATTY"}Ri: Script per selezionare colonne da un elenco negli appuntiLa mia risposta precedente aveva lo scopo di mostrarti come accedere all'elemento negli appunti.Ho pensato che da lì saresti stato in grado di costruire l'elenco di cui avevi bisogno.Ecco un esempio più completo che prende ogni elemento trovato negli appunti e li aggiunge all'elenco chiamato "theList".
Quindi, se copi negli appunti quanto segue

ed eseguire lo 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);
Crea la lista JMP "theList"
theList = {"KATIE", "LOUISE", "JANE", "JACLYN", "LILLIE", "TIM", "JAMES", "ROBERT", "BARBARA", "ALICE"};Ri: Script per selezionare colonne da un elenco negli appuntiHo trovato un modo in stile Rube Goldberg per generare il formato richiesto .Cercherò di integrare in uno script completo in seguito da condividere.
Il seguente prende un elenco negli appunti e lo converte nel formato richiesto.... es {"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
Ri: Script per selezionare colonne da un elenco negli appuntiGrazie per i ripetuti sforzi per aiutare con questo.Comunque non credo di essere stato chiaro.
Quando Getclipboard mi dà questo...
{"Tcea1, Atp6v1h, Oprk1, Rb1cc1, Fam150a"}
Devo convertirlo in questo
{"Tcea1", Atp6v1h", "Oprk1", "Rb1cc1, "Fam150a"} che preferisco perché trasforma i valori numerici in stringhe
o in questo
{Tcea1, Atp6v1h, Oprk1, Rb1cc1, Fam150a}
C'è un modo semplice per scriptare quella trasformazione....?
quindi lo script che hai fornito a giugno seleziona bene tutte le colonne.In genere i miei elenchi hanno centinaia di etichette di colonna, quindi ho bisogno di automatizzare.
Grazie
Ri: Script per selezionare colonne da un elenco negli appuntiGet Clipboard() restituisce tutto ciò che si trova negli appunti come singola stringa.Per ottenere valori specifici dalla stringa restituita, è necessario utilizzare le varie funzioni di gestione dei caratteri in JMP per ottenerli dalla stringa.
Come nota, per impostazione predefinita, JMP inserisce un carattere di tabulazione come spaziatore tra i valori di colonna.
Se si aprisse la tabella di dati di esempio chiamata Big Class e si copiassero nel buffer di incolla le prime 10 righe per le prime 3 colonne (Nome, Sesso, Età), lo script seguente restituirebbe il nome dell'individuo dalla seconda riga copiata in il tampone di pasta.
Names Default To Here( 1 );
myClipboard = Get Clipboard();
theWord = Word( 4, myclipboard, "\!t\!n\!r" );
Show( theWord );
La funzione Word() restituisce l'ennesima parola dalla variabile myclipboard, utilizzando Tab, Linefeed e Carriage Return, come delimitatori da cercare per determinare la spaziatura delle parole.\!t è la struttura di escape che indica il carattere non stampabile per la Tab.
Da questo modello dovresti essere in grado di passare attraverso i dati e trovare tutte le informazioni di cui hai bisogno.
Ri: Script per selezionare colonne da un elenco negli appuntiin ritardo....
I miei elenchi vengono copiati negli appunti da una colonna nel data frame di JMP o in Excel
Ho bisogno che il contenuto degli appunti con ad esempio 3 copie di stringhe, columnQ, columnX, columnB sia convertito in questo nello script {columnQ, columnX, columnB}.
..... ma tutte le soluzioni che hai elencato risultano in "" attorno alla serie e lo script non viene eseguito.Come sbarazzarsi di "" ??
GRAZIE
myClipboard = Ottieni Appunti();
/*:
"colonna Q
colonnaX
colonnaB"
//:*/
myClipboard = parole (Ottieni Appunti());
/*:
{"colonna Q
colonnaX
colonnaB"}
//:*/
myClipboard = words(Ottieni Appunti(),);
/*:
{"colonna Q
colonnaX
colonnaB"}
//:*/
myClipboard = words(Ottieni Appunti(),",");
/*:
{"colonna Q
colonnaX
colonnaB"}
Ri: Script per selezionare colonne da un elenco negli appuntiPuoi usare
myClipboard = Get Clipboard();
per spostare l'elenco in una variabile di memoria.....in questo esempio, una variabile chiamata "myClipboard", quindi usando JSL, manipolala come desiderato
Se i tuoi appunti contenevano quanto segue
Aasdh,Abca2,Abca7,Abcf1,Abi3
Potresti recuperarlo in un elenco JMP usando
myClipboard = words(Get Clipboard(),",");