分割文件名称
我有这样的文件的名称: name1.csv
,我想提取这个string的两个子string。 一个将name1
存储在一个variables中,另一个存储扩展名csv
,而不在另一个variables中存储点。
我一直在寻找是否有像Java的indexOf
function,允许做这种操作,但我什么也没有find。
任何帮助?
使用strsplit
:
R> strsplit("name1.csv", "\\.")[[1]] [1] "name1" "csv" R>
请注意,您a)需要转义点(因为它是正则expression式的元字符),b)处理strsplit()
返回通常只有第一个元素感兴趣的列表。
更一般的解决scheme涉及可以提取匹配的正则expression式。
对于文件名的特殊情况,你也有:
R> library(tools) # unless already loaded, comes with base R R> file_ext("name1.csv") [1] "csv" R>
和
R> file_path_sans_ext("name1.csv") [1] "name1" R>
因为这些是一个常见的任务(比如shell中的basename
)。
使用strsplit()
:
http://stat.ethz.ch/R-manual/R-devel/library/base/html/strsplit.html
例:
> strsplit('name1.csv', '[.]')[[1]] [1] "name1" "csv"
请注意,第二个参数是一个正则expression式,这就是为什么你不能通过单点(它将被解释为“任何字符”)。
使用正则expression式,你可以做这个例子
regmatches(x='name1.csv',gregexpr('[.]','name1.csv'),invert=TRUE) [[1]] [1] "name1" "csv"