如何从最后一个子文字串

时间:2017-09-25 05:52:13

标签: r

我在r dataframe中有以下列

 file_name
 01.01.2017 -SS DPR.xlsx
 02.01.2017 -SS DPR.xlsx
 03.01.2017 -SS DPR.xlsx
 04.01.2017 -SS DPR.xlsx
 05.01.2017 -SS DPR.xlsx
 06.01.2017 -SS DPR.xlsx

我想只从上面的列中提取名称而不是扩展名。

 file_name
 01.01.2017 -SS DPR
 02.01.2017 -SS DPR
 03.01.2017 -SS DPR
 04.01.2017 -SS DPR
 05.01.2017 -SS DPR
 06.01.2017 -SS DPR

如何从r?

中的最后4个字符对数据帧进行子集化

2 个答案:

答案 0 :(得分:3)

尝试使用TextBlock

Text

此解决方案使用模式gsub,它会占用并捕获所有内容,直到终点,然后是任何类型的扩展。如果您计划使用Excel电子表格以外的文件,这可能很有用。

<强>输出:

new_file_name <- gsub("(.*)\\.\\w+", "\\1", file_name)

在这里演示:

Rextester

答案 1 :(得分:0)

我们可以使用sub

df1$file_name <- sub("\\.xlsx", "", df1$file_name)

或使用file_path_sans_ext

中的tools
df1$file_name <- tools::file_path_sans_ext(df1$file_name)
df1$file_name
#[1] "01.01.2017 -SS DPR" "02.01.2017 -SS DPR" "03.01.2017 -SS DPR" 
#[4] "04.01.2017 -SS DPR" "05.01.2017 -SS DPR"
#[6] "06.01.2017 -SS DPR"