You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请教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
)

这行代码的作用是:

  1. 遍历path/to/files文件夹及其所有子文件夹
  2. 筛选出所有以.csv结尾的文件
  3. 返回这些文件的完整路径并存储到df变量中,后续用read.csv()循环读取时直接用这些路径即可。

内容的提问来源于stack exchange,提问作者Ilham Y. B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 04:31:04