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

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"

09-30 15:48
查看更多