Come allineare ciascun campo?Ho un file txt. Vorrei importare in JMP per l'analisi. Ma alcune colonne non sono allineate. Come li allineo?
Il delimitato dovrebbe essere spazio, spazi e virgola. Ma "," tratterà lo spazio come testo. Come posso superare questo problema?

dtTlog = Open(
D,
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Spaces, Space, CSV( 1 ), Comma ),
Strip Quotes( 1 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 1 ),
Data Starts( 2 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
);
Automazione e scriptingfinestreRi: Come allineare ogni campo?Il problema che stai riscontrando è che stai utilizzando spazi e virgole come delimitatori e nella colonna f hai righe che hanno sia una virgola che un delimitatore di spazio affiancate. Un esempio è
4, 7
La colonna C1c legge 4, quindi vede , come delimitatore seguito da uno spazio come secondo delimitatore, quindi poiché non ha visto un valore dopo il primo delimitatore e il secondo delimitatore, applica un valore mancante alla colonna f e 7 diventa quindi il valore per la colonna C2c.
Di seguito è riportato uno script che legge tutti i dati, rimuove tutte le virgole, li salva in un'area temporanea e quindi li rilegge utilizzando il flusso di input
names default to here(1);
d= "<YOUR path="" and="" file="" name="">";
dt = Open(
D ,
columns( New Column( "c000001", Character, "Nominal" ) ),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( CSV( 0 ) ),
Treat Leading Zeros as Character( 1 ),
Strip Quotes( 1 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 0 ),
Column Names Start( 0 ),
First Named Column( 0 ),
Data Starts( 1 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
);
for each row(:c000001 = Trim(substitute(:c000001,","," ")));
dt << save ("$TEMP\interium file.txt");
dtTlog = Open(
"$TEMP\interium file.txt",
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Spaces, Space, CSV( 1 ), Comma ),
Strip Quotes( 1 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 2 ),
Data Starts( 3 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
); </YOUR>

Ri: Come allineare ogni campo?
Okay vedo. Capisco il tuo suggerimento. Ma mi dà un livello di allerta superiore.
Ri: Come allineare ciascun campo? For Each( {col},
dt << Get Column Reference( dt << Get Column Names( Character ) ),
If( !Is Empty( col << Get Formula ),
Continue()
);
For Each Row( dt, col[] = Substitute( col[], ",", " ", <<IGNORECASE></IGNORECASE>I replace that line with these code. It's working now. Thanks.
Ri: Come allineare ciascun campo?Ho avuto un leggero errore nel mio codice originale. Sono tornato indietro e l'ho corretto. Per favore copialo e verifica che funzioni. La correzione implementata era buona, tuttavia, il codice originale non viene letto separatamente in ciascuna colonna. Legge tutti i dati in ciascuna riga come una colonna e quindi li gestisce dal punto di vista di avere una tabella dati con una sola colonna.
Ri: Come allineare ciascun campo?In alternativa, è possibile utilizzare Carica file di testo per aprire il file come testo, rimuovere le virgole tramite sostituto e infine aprire il testo in una tabella dati
post originali:
Errore di importazione .csv / @Craige_Hales
Importazione file: specificare NAN? / @jthi
txtfile = Load Text File("$DOWNLOADS/log - question2.txt");
substituteinto(txtfile,","," ");
Open(
Char to Blob(txtfile),
Import Settings(
End Of Field( Spaces, Space ),
)
);
Ri: Come allineare ogni campo?Testo in colonne: gestisci correttamente i dati mancanti
"correttamente"?
per il tuo compito, il testo in colonne funziona come un incantesimo:
dt = Open(
"$DOWNLOADS/log - question2.txt",
Import Settings(
End Of Field( Tab ),
Labels( 0 )
)
);
// split columns via Text to columns
dt << Text to Columns( columns( :c000001 ), Delimiters( " ", "," ));
dt << Delete Columns( :c000001);
// Move column names up
dt << Move up;