当我有一部分名字时,从R中的文件中读取

时间:2014-10-30 06:15:03

标签: r

当我只有一部分名称包括开头或结尾字符时,如何从R中读取文件?

谢谢

2 个答案:

答案 0 :(得分:5)

您可以使用具有list.files参数的pattern尽可能接近匹配。

writeLines(c('hello', 'world'), '~/tmp/example_file_abc')
filename <- list.files(path = '~/tmp', pattern = 'file_abc$', full.names = TRUE)[1]
readLines(filename)
# [1] "hello" "world"

答案 1 :(得分:0)

还有Sys.glob根据glob语法使用星号和问号扩展模式。

此处它包含在一个函数中,以匹配"first*last"形式的文件名,其中"*"是任何东西。如果你的文件名中确实有星星或其他特殊字符......那么你需要做更多的事情..无论如何:

> match_first_last = function(first="", last="", dir=".")
   {Sys.glob(
      file.path(dir,paste(first,"*",last,sep=""))
      )
    }


# matches "*" and so everything:
> match_first_last()
[1] "./bar.X" "./foo.c" "./foo.R"

# match things starting `foo`    
> match_first_last("foo")
[1] "./foo.c" "./foo.R"

# match things ending `o.c`
> match_first_last(last="o.c")
[1] "./foo.c"

# match start with f, end in R
> match_first_last("f","R")
[1] "./foo.R"