我的文件名如下:name1.csv
,我想提取该字符串的两个子字符串。一种将 name1
存储在一个变量中,另一种将扩展名 csv
存储在另一个变量中,但不带点。
我一直在寻找是否有像 Java 的 indexOf
这样的函数可以进行这种操作,但我什么也没找到。
有什么帮助吗?
最佳答案
使用strsplit
:
R> strsplit("name1.csv", "\\.")[[1]]
[1] "name1" "csv"
R>
请注意,您 a) 需要转义点(因为它是正则表达式的元字符),b) 处理 strsplit()
返回一个列表,其中通常只有第一个元素是感兴趣的。
更通用的解决方案涉及正则表达式,您可以在其中提取匹配项。
对于文件名的特殊情况,您还可以:
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
)。
关于r - 将文件名拆分为名称、扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14173754/