Sys.glob扩展

时间:2013-07-30 05:27:31

标签: r filepath

我正在尝试使用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”位作为它自己的参数,因为我将传递一个变量而不是一个硬编码的字符串。

谢谢。

1 个答案:

答案 0 :(得分:6)

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*"