想象一下,我们有一个变量名列表,如下所示:
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"
答案 0 :(得分:6)
你可以尝试
sub('[.][^.]+$', '', ls)
#[1] "apple" "orange" "orange" "apple.pie" "orange.juice"
#[6] "orange.juice"
答案 1 :(得分:2)
鉴于这相当于删除文件扩展名,您可以使用
library(tools)
file_path_sans_ext(ls)