我正在尝试使用Sys.glob打开名为"apcp_sfc_latlon_subset_19940101_20071231.nc".的文件,以下命令有效:

> Sys.glob(file.path("data/train", "apcp*"))
[1] "data/train/apcp_sfc_latlon_subset_19940101_20071231.nc"

但是此命令不返回任何内容。我不知道为什么它不起作用。
> Sys.glob(file.path("data/train", "apcp", "*"))
character(0)

我希望将“apcp”位作为其自己的参数,因为我将传递变量而不是硬编码的字符串。

谢谢你。

最佳答案

file.path("data/train", "apcp", "*")返回"data/train/apcp/*",而file.path("data/train", "apcp*")返回"data/train/apcp*"

因此,在第一种情况下,您正在子目录apcp中寻找文件,在(工作)情况下,您正在apcp目录中寻找以data\train开头的文件。

如果您希望能够将apcp组件作为参数传递,则可以使用paste0

starting <- "apcp"

file.path("data/train", paste0(starting, '*', collapse =''))

# "data/train/apcp*"

关于r - Sys.glob扩展,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17938916/

10-12 18:26