请教R语言list.files函数中recursive与full.names参数的含义
理解R语言list.files()的recursive和full.names参数
先讲recursive参数:
这个参数控制是否递归遍历子文件夹。举个实际的文件夹结构例子:
假设你的目标路径是"data",里面的结构是:
data/ ├─ sales.csv ├─ report.xlsx └─ archive/ ├─ 2023_sales.csv └─ old_report.txt
- 当
recursive = FALSE(默认值)时,list.files()只会扫描data文件夹本身,不会进入子文件夹archive,如果匹配pattern = "\\.csv$",只会返回sales.csv。 - 当
recursive = TRUE时,函数会遍历data下所有层级的子文件夹,包括archive,符合csv规则的文件都会被找出,返回sales.csv和2023_sales.csv。
再讲full.names参数:
这个参数控制返回的是纯文件名还是完整文件路径。还是用上面的例子:
- 当
full.names = FALSE(默认值)时,返回的是纯文件名,比如"sales.csv"、"2023_sales.csv"。 - 当
full.names = TRUE时,返回的是从目标路径开始的完整路径,比如"data/sales.csv"、"data/archive/2023_sales.csv"。这样后续要读取文件时,直接用返回的路径就行,不用手动拼接路径。
结合你给出的代码示例:
df <- list.files( path = "path/to/files", recursive = TRUE, pattern = "\\.csv$", full.names = TRUE )
这行代码的作用是:
- 遍历
path/to/files文件夹及其所有子文件夹 - 筛选出所有以
.csv结尾的文件 - 返回这些文件的完整路径并存储到
df变量中,后续用read.csv()循环读取时直接用这些路径即可。
内容的提问来源于stack exchange,提问作者Ilham Y. B
相关产品推荐
相关产品推荐

