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

R中list.files四条件匹配文件名失败,如何让pattern1生效?

问题原因与解决方法

你的pattern1匹配失败的核心原因是正则表达式里的元素顺序和文件名实际顺序不符:
目标文件名mpi-esm1-2-hr_r1i1p1f1_w5e5_ssp126_hurs_global_daily_2041_2050.nc中,ssp126出现在_hurs_之前,但你构建的pattern1把_hurs_放在了ssp126前面,导致正则表达式找不到符合顺序的匹配项。

修改后的代码

调整pattern1中sspChoice和climVar的顺序即可解决问题:

modelChoice.lower <- "mpi-esm1-2-hr"
startYear = 2041
climVar <- "_hurs_"
sspChoice <- "ssp126"
# 修正顺序:sspChoice 在 climVar 之前
pattern1 <- paste0(modelChoice.lower, ".+", sspChoice, ".+", climVar, ".+", startYear)
pattern2 <- paste0(modelChoice.lower, ".+", climVar, ".+", startYear + 10)
ff1 <- list.files(locOfFiles, pattern = pattern1, full.names = TRUE)
ff2 <- list.files(locOfFiles, pattern = pattern2, full.names = TRUE)

验证结果

修改后pattern1会变成:

"mpi-esm1-2-hr.+ssp126.+_hurs_.+2041"

这个正则表达式会正确匹配包含mpi-esm1-2-hr、ssp126、_hurs_且年份段以2041开头的文件,ff1就能返回对应的文件路径。

内容的提问来源于stack exchange,提问作者JerryN

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 08:12:20