導入 csv 並僅更改幾列的格式我有一些需要導入的 csv 文件,並且有一些與軟件版本相關的字段。 但是,它們像 xyz 一樣位於 csv 中,並且沒有封裝在引號中,因此 JMP 嘗試將其作為數字數據類型引入。 當它這樣做時,JMP 認為該數字是一個日期並將其轉換為日期,因此很難轉換回可用版本。
如果我手動導入文件,我可以使用預覽將我需要的列強制為我想要的數據類型。 但是,生成的導入腳本對每一列都有“新列()”,我要么必須省略整個內容,所以 JMP 只導入文件,要么列出所有 186 列,以便我可以控制少數的導入。
真正的問題是其中一些文件有不同的列......有些是共同的,有些不是,但在所有情況下,版本列都是共同的,我需要控制它們的引入方式。
以下是我希望能夠做的事情(或類似的事情),但總列數實際上是 186 ......
Open(
filepath,
columns(
New Column( "ALGORITHM_VERSION", Character, "Nominal" ),
New Column( "CLUST_ALG_VERSION", Character, "Nominal" ),
New Column( "CYTOFILEIO_VERSION", Character, "Nominal" ),
New Column( "RELEASE_VERSION", Character, "Nominal" )
),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Comma, CSV( 0 ) ),
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" )
)
)
腳本回复:導入 csv 並且只更改幾列的格式這是一個應該可以將列正確更改為字符的腳本。
Names Default To Here( 1 );
dt = Open(
filepath,
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Comma, CSV( 0 ) ),
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" )
)
);
For( i = 1, i <= N Cols( dt ), i++,
If(
Contains(
Uppercase( Column( dt, i ) << get name ),
"_VERSION"
) & Column( dt, i ) << get data type == "Numeric",
Column( dt, i ) << set format( "Fixed Dec", 18, 0 );
Column( dt, i ) << data type( "Character" );
)
);
回复:導入 csv 並且只更改幾列的格式你能用一個像這樣的公式嗎
Char( Month( :colName ) ) || "." || Char( Day( :colName ) ) || "." ||
Char( Year( :colName ) )
轉換回來?
回复:導入 csv 並且只更改幾列的格式查看一些佈局,這適用於其中一些,但不是全部。當然,我不會知道我得到的佈局,直到它得到處理。
現在我們有 CSV 的每一種途徑的代碼,我們只需要將文件發送到正確的路徑以進行處理......但由於它們應該是 90% 相同的,這似乎是一種恥辱不是一個更動態的解決方案。