📅  最后修改于: 2023-12-03 15:27:47.929000             🧑  作者: Mango
在R中,可以使用list.files()
函数来获取目录中的文件列表和子文件夹。
list.files(path, pattern = NULL, all.files = FALSE, full.names = FALSE, recursive = FALSE, ignore.case = FALSE)
参数解释如下:
path
- 要检查的目录路径。pattern
- 文件名的搜索模式(字符向量)。all.files
- 逻辑标识,若为TRUE,则包括以点开头的隐藏文件。full.names
- 逻辑标识,若为TRUE,则返回完整路径列表。recursive
- 逻辑标识,若为TRUE,则递归地列出子目录中的文件。ignore.case
- 逻辑标识,若为TRUE,则搜索时忽略大小写。例如,以下是获取“/data”目录下的所有文件和目录的代码:
myfiles <- list.files("/data")
print(myfiles)
输出结果为:
[1] "file1.csv" "file2.xlsx" "folder1" "folder2"
要获取子目录中的所有文件,可以将recursive
参数设置为TRUE:
myfiles <- list.files("/data", recursive = TRUE)
print(myfiles)
输出结果为:
[1] "file1.csv" "file2.xlsx" "folder1/file3.rds" "folder1/subfolder1"
[5] "folder1/subfolder2" "folder2/file4.csv" "folder2/subfolder3" "folder2/subfolder3/file5.rds"
此外,参数pattern
可以用于限制所列出的文件名。例如,以下代码将只会列出名字中含有“csv”的文件:
myfiles <- list.files("/data", pattern = "*.csv")
print(myfiles)
输出结果为:
[1] "file1.csv" "folder2/file4.csv"
如果需要返回完整路径名列表,可以将full.names
参数设置为TRUE:
myfiles <- list.files("/data", full.names = TRUE)
print(myfiles)
输出结果为:
[1] "/data/file1.csv" "/data/file2.xlsx"
[3] "/data/folder1/file3.rds" "/data/folder1/subfolder1"
[5] "/data/folder1/subfolder2" "/data/folder2/file4.csv"
[7] "/data/folder2/subfolder3" "/data/folder2/subfolder3/file5.rds"
以上就是获取R中目录列表的方法,您可以根据自己的需求进行参数的选择和调整,获得想要的结果。