Funzione Word () che fornisce l'output erratoCiao a tutti,
Ho problemi con la funzione word(). Comincio con un .csv
Per esempio:
col1,col2
0,556
0,557
0,558
-1.225
-1.226
Datafile = Load Text File (...);
line_content = Words (Datafile, "\!n");
For(nn=2, nn <= N items (line_content), nn++,
Col1_list=Word(1,line_content[nn], ",");
Col2_list=Word(2,line_content[nn], ",");
);
Gli elenchi risultanti sono:
{"0", "0", "0", "-12", "-12"}
{"556", "557", "558", "25", "26"}
quindi la funzione word() funziona in modo diverso se la riga inizia con un segno meno... Ho provato Item () e utilizzando una clausola Num(Word()), ma non cambia nulla. Ho anche provato Word(1,Trim(line_content[nn],",")).
Sto usando JMP 14.0.0
grazie in anticipo
Ri: Funzione Word () che fornisce l'output erratoGrazie ancora per le tue idee. Anche questo sembra buono. Non ho idea di cosa sia cambiato, ma JMP ora importa correttamente i file con lo script di ieri quando inizialmente ho pubblicato la domanda (tranne per l'errore che ho fatto qui nel post). Devono esserci alcune impostazioni di Windows/Excel di livello superiore mescolate tra "," e "." differenziazione decimale/virgola. Ho configurato le mie finestre tedesche per utilizzare lo standard americano.Ri: Funzione Word () che fornisce l'output erratoNon sono esattamente sicuro di cosa stai cercando ora, ma il piccolo script qui sotto legge nel tuo file .csv e restituisce i 2 elenchi che hai specificato, senza errori.L'unico elemento che ho aggiunto è stato quello di assicurarmi che i caratteri di ritorno a capo esistenti nel file non fossero inclusi nei valori degli elenchi.
names default to here(1);
Datafile = Load Text File ("...……...\WFR1_sample1.csv");
line_content = Words (Datafile, "\!n");
// Get rid of all lines upto the Graph data
// The \!r is a Carriage Return character which is at the end of each line
line_content = remove(line_content,1,loc(line_content,"{QgWave Graphs}\!r")+1);
Col1_list = {};
Col2_list = {};
For(nn=1, nn <= N items (line_content), nn++,
insert into(Col1_list,Word(1,line_content[nn], ",\!r"));
insert into(Col2_list,Word(2,line_content[nn], ",\!r"));
);Ri: Funzione Word () che fornisce l'output erratoEcco il csv originale allegato. Ho chiesto al mio collega di guardarsi alle spalle, anche lui l'ha visto... È riproducibile.
Ri: Funzione Word () che fornisce l'output erratoOh, le mie scuse. Ho usato l'espressione:
<SPAN class="token function">For</SPAN><SPAN class="token punctuation">(</SPAN>nn<SPAN class="token operator">=</SPAN><SPAN class="token number">2</SPAN><SPAN class="token punctuation">,</SPAN> nn <SPAN class="token operator"><=</SPAN> N items <SPAN class="token punctuation">(</SPAN>line_content<SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN> nn<SPAN class="token operator">++</SPAN><SPAN class="token punctuation">,</SPAN>
Col1_list[nn-1]<SPAN class="token operator">=</SPAN><SPAN class="token function">Word</SPAN><SPAN class="token punctuation">(</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">,</SPAN>line_content<SPAN class="token punctuation">[</SPAN>nn<SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token string">","</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
Col2_list[nn-1]<SPAN class="token operator">=</SPAN><SPAN class="token function">Word</SPAN><SPAN class="token punctuation">(</SPAN><SPAN class="token number">2</SPAN><SPAN class="token punctuation">,</SPAN>line_content<SPAN class="token punctuation">[</SPAN>nn<SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token string">","</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
<SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
Passerò all'utilizzo della funzione insert into (), che è molto più conveniente. Grazie.
Se utilizzo il file .csv di esempio che hai fornito, il codice funziona davvero.
Ma ho appena iniziato a mettere in discussione la mia salute mentale e ho aperto i file .csv con diversi editor: Blocco note di Windows, Blocco note++, Word Pad, Excel. Ogni poche esecuzioni le colonne di dati visualizzate avranno la virgola in una posizione diversa, indipendentemente dai programmi utilizzati. Non l'ho mai visto prima. Potrei semplicemente lasciare il lavoro e tornare a casa.




Ri: Funzione Word () che fornisce l'output erratoLa tua sintassi mi sembra sospetta.Non sono sicuro di come stai creando il tuo Col1_list e Col2_list creerebbe mai un elenco concatenato.Di seguito è la mia modifica, e in allegato è il file csv che ho usato.Crea i 2 elenchi senza errori su JMP 14.1
Datafile = Load Text File (".................\test.csv");
line_content = Words (Datafile, "\!n");
Col1_list = {};
Col2_list = {};
For(nn=2, nn <= N items (line_content), nn++,
insert into(Col1_list,Word(1,line_content[nn], ","));
insert into(Col2_list,Word(2,line_content[nn], ","));
);