2
這個Question詢問在當前目錄中列出目錄(不是文件)。我在其中一個答案的評論中指出,我們不能使用dir
和list.files
等函數的recursive
參數遞歸列出當前目錄中的目錄。如何使用Recall()`寫遞歸函數遞歸列出給定目錄中的目錄?
對此的一個明顯的解決方案是編寫一個遞歸函數,該函數列出當前目錄中的目錄,並在每個目錄上依次調用自身,依此類推,添加到在遞歸結束。
Recall()
函數似乎是理想的候選人,但我從來沒有真正瞭解到如何編寫一個遞歸函數,每次調用都會添加到最終輸出中。
一個會如何修改這個功能:
list.dirs <- function(path) {
x <- dir(path, full.names = TRUE)
dnames <- x[file_test("-d", x)]
dnames
}
把它向下遞歸通過目錄中dnames
將發現到dnames
目錄中找到的所有目錄的列表中的任何目錄,等等.. 。?
我覺得我的主要問題不是真的在想如何編寫一個函數來使用自己的Recall函數? – 2011-01-20 18:16:08
要在遞歸函數中使用Recall,請調用Recall而不是函數的名稱。 – hadley 2011-01-20 21:03:56