在最后一个"."之后删除字符串的最后一部分.在R

Hao*_*Hao 4 regex r gsub

想象一下,我们有一个变量名列表,如下所示:

ls<-c("apple.mean", "orange.mean", "orange.sd", "apple.pie.mean", "orange.juice.n", "orange.juice.p%")
Run Code Online (Sandbox Code Playgroud)

我们如何删除每个元素中的最后一部分(在"."之后),以便我们得到:

"apple" "orange" "orange" "apple.pie" "orange.juice" "orange.juice"
Run Code Online (Sandbox Code Playgroud)

请注意,可能有"." 在名称内,但我不希望这些单词被拆分.

我试图使用,gsub("\\..*$", "",ls)但它在第一个点之后省略了所有内容.我不确定为什么$符号在这里不起作用.有任何想法吗?

> gsub("\\..*$", "",ls)
[1] "apple"  "orange" "orange" "apple"  "orange" "orange"
Run Code Online (Sandbox Code Playgroud)

akr*_*run 6

你可以试试

sub('[.][^.]+$', '', ls)
#[1] "apple"        "orange"       "orange"       "apple.pie"    "orange.juice"
#[6] "orange.juice"
Run Code Online (Sandbox Code Playgroud)