删除最后一个“.”之后的字符串的最后一部分。在 R
Remove the last part of a string after the last "." in R
假设我们有一个变量名列表,如下所示:
ls<-c("apple.mean", "orange.mean", "orange.sd", "apple.pie.mean", "orange.juice.n", "orange.juice.p%")
我们如何删除每个元素中的最后一部分(“.”之后),以便我们可以得到:
"apple" "orange" "orange" "apple.pie" "orange.juice" "orange.juice"
注意可能有“.”在名字里面,但我不希望这些词被分开。
我试图使用 gsub("\..*$", "",ls)
但它省略了第一个点之后的所有内容。我不确定为什么 $ 符号在这里不起作用。有什么想法吗?
> gsub("\..*$", "",ls)
[1] "apple" "orange" "orange" "apple" "orange" "orange"
你可以试试
sub('[.][^.]+$', '', ls)
#[1] "apple" "orange" "orange" "apple.pie" "orange.juice"
#[6] "orange.juice"
鉴于这等同于删除您可以使用的文件扩展名
library(tools)
file_path_sans_ext(ls)
假设我们有一个变量名列表,如下所示:
ls<-c("apple.mean", "orange.mean", "orange.sd", "apple.pie.mean", "orange.juice.n", "orange.juice.p%")
我们如何删除每个元素中的最后一部分(“.”之后),以便我们可以得到:
"apple" "orange" "orange" "apple.pie" "orange.juice" "orange.juice"
注意可能有“.”在名字里面,但我不希望这些词被分开。
我试图使用 gsub("\..*$", "",ls)
但它省略了第一个点之后的所有内容。我不确定为什么 $ 符号在这里不起作用。有什么想法吗?
> gsub("\..*$", "",ls)
[1] "apple" "orange" "orange" "apple" "orange" "orange"
你可以试试
sub('[.][^.]+$', '', ls)
#[1] "apple" "orange" "orange" "apple.pie" "orange.juice"
#[6] "orange.juice"
鉴于这等同于删除您可以使用的文件扩展名
library(tools)
file_path_sans_ext(ls)