r - 将文件名拆分为名称、扩展名

标签 r split substring filenames

我的文件名如下: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/

相关文章:

c++ - 子串换行

javascript - 使用 JavaScript 从字符串中获取整数

r - 计算 R 中范围内的数值

.net - VB.NET String.Split 方法?

vb.net - 在VB.NET中拆分“十进制”

Python 将文件分割成多个较小的文件

string - 为什么golang没有子字符串?

xml - 在 R 中获取 xml 属性花费的时间太长并且占用大量内存

r - ggplot2 : altering x and y grid lines 中的主题操作

r - grid.arrange 使用绘图列表