使用grepl返回字符串的已识别部分,而不是完整字符串

时间:2018-10-29 23:56:00

标签: r string grepl

我有一列包含大约300个字符串,它们都以(不同)文件扩展名结尾。

例如

   id   colname1
   1    file1.mov
   2    name.jpeg
   3    bla.long_extension

我想创建一个仅返回扩展名的新字符串。 因此,应该删除圆点上剩下的所有内容

id    new_col
 1     .mov
 2     .jpeg
 3     .long_extension

使用grep(“。*”,df $ colname1,value = TRUE),我可以确定哪些行适合该模式(以“。结尾,并且不指定数量的后续字符),但是如何指定我只想要返回的最后一个字符而不是行号或整个字符串? 点的左侧或右侧的字符数都是固定的。

1 个答案:

答案 0 :(得分:0)

我们可以使用sub删除前缀

df$new_col <- sub(".*\\.", ".", df$colname1)
df$new_col
#[1] ".mov"            ".jpeg"           ".long_extension"