访问R中由str_split分割的单个值,找到最后一个?

时间:2013-09-24 21:46:54

标签: string r

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

“C:/嗒嗒/这个/不管/文件名”

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

2 个答案:

答案 0 :(得分:7)

取自:Find file name from full file path

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

答案 1 :(得分:4)

不需要str_split:

sub( "^.+/(.+)$", "\\1",  "C:/blah/this/whatever/filename" )