2014-10-30 78 views
2

如果我只有部分名稱包括開始或結束字符,如何從R中的文件中讀取數據?從R中的文件中讀取名稱中的部分名稱

感謝

+2

如何使用'list.files()'來獲取所有列表文件在工作目錄中,然後看哪一個符合你的標準,然後閱讀它。你已經提供了很少的細節,很難更具體。 – MrFlick 2014-10-30 06:17:37

回答

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