如何循環遍歷多個 csv 檔案並根據特定檔案名稱選擇它們?這是我的程式碼:
path = "/users/BOT/Test_files/";
Set File Search Path( mypath );
// filter out all csv files in the path that contains "Pass" && Not contains "Conditional_Pass" or "Fail" in file name
y = Files In Directory( mypath );
For( i = N Items( y ), i > 0, i--,
If( (Ends With( y[i], ".csv" ) & Contains( y[i], "Pass" ) & Not( Contains( y[i], "Conditional_Pass" ) ) & Not( Contains( y[i], "Fail" ) )),
,
Remove From( y, i )
)
);
n = N Items( y );
繼續出現以下錯誤(如螢幕截圖所示),是否是因為Files In Directory()函數已被棄用?
有趣的是上面的程式碼曾經適用於 JMP16,昨天我升級到 JMP17 後彈出下面的錯誤。

資料存取回覆:如何循環遍歷多個 csv 檔案並根據特定檔案名稱選擇它們?當您刪除正在循環的相同清單時,您很可能會收到該錯誤。對於這種類型的過濾,我建議使用 Filter Each 而不是 For 迴圈。
另外,您是否嘗試過使用多個文件導入?
回覆:如何循環遍歷多個 csv 檔案並根據特定檔案名稱選擇它們?請檢查路徑與mypath
除此之外,您可以使用Filter Each而不是for迴圈:
//path = "/users/BOT/Test_files/";
mypath = "/users/BOT/Test_files/";
y = Files In Directory( mypath );
y = filter each({fn}, y, Ends With( fn, ".csv" ) & Contains( fn, "Pass" ) & Not( Contains( fn, "Conditional_Pass" ) ) & Not( Contains( fn, "Fail" ) ) )回覆:如何循環遍歷多個 csv 檔案並根據特定檔案名稱選擇它們?您也可以採取下一步並升級到 JMP18 - 可以選擇在 MultiFileImport 中使用檔案清單。
在某些情況下,這將使資料導入速度加快幾個數量級!
y= Transform each ({fn}, y, mypath || fn);
Eval(Eval Expr (Multiple File Import(
<<SET use="" file="" list=""></SET><BR />At the moment, Filelist + <FONT face="courier new,courier">多文件導入</FONT> needs the complicate <FONT face="courier new,courier">Eval(Eval Expr(... Expr() ...))</FONT>.<BR />This will get fixed in a future release of JMP.
回覆:如何循環遍歷多個 csv 檔案並根據特定檔案名稱選擇它們?我認為您打開了一個資料表,其中包含名為 Y 的列。關閉表,或更改表或腳本中的名稱,或使用範圍界定來告訴 JMP 您的意思。
此範例在 Y 位於任何名稱空間之前重新啟動 JMP。

@Audrey_Shull - 如果該錯誤對話方塊命名變數來自的表,則該錯誤對話方塊將改進 100%。
回覆:如何循環遍歷多個 csv 檔案並根據特定檔案名稱選擇它們?謝謝克雷格,是的,我一天前發現了我的錯誤並解決了它,就像你的描述一樣。
回覆:如何循環遍歷多個 csv 檔案並根據特定檔案名稱選擇它們?感謝hog,filter的各個功能也給了我一些啟發。
回覆:如何循環遍歷多個 csv 檔案並根據特定檔案名稱選擇它們?嘿,jthi,謝謝你。
同意多文件導入是解析文件的好方法,比我目前的方法更快。