2

这应该很简单,但我无法弄清楚。我有一个代表文件路径名的字符串,即

“C:/blah/this/whatever/filename”

我需要提取文件名(以编程方式)。我正在尝试使用 strsplit (或 str_split),并且很容易将字符串按 '/' 拆分,但是.. 我无法理解如何实际提取返回向量中的一个值,或者确定有多少元素是偶数在向量中(因为这可能对我的应用程序非常有用)。使用长度(奇怪的是,在我看来)没有帮助。帮助?

4

2 回答 2

7

取自:从完整文件路径中查找文件名

basename("C:/some_dir/a")
> [1]  "a"

dirname("C:/some_dir/a")
>[1] "C:/some_dir"

虽然我认为上述方法要好得多,但您也可以使用该str_split方法 - 我真的只提到它来展示如何使用lapply.

example <- c("C:/some_dir/a","C:/some_dir/sdfs/a","C:/some_dir/asdf/asdf/a")
example.split <- strsplit(example,"/")
files <- unlist(lapply(example.split, tail , 1 ))
于 2013-09-24T21:49:48.817 回答
4

不需要 str_split:

sub( "^.+/(.+)$", "\\1",  "C:/blah/this/whatever/filename" )
于 2013-09-24T21:50:59.700 回答