R 用名称提取向量的单词

R 用名称提取向量的单词,r,regex,string,R,Regex,String,这是我的向量: m.v<- c("Aert~Derr", "Aert~Derr", "Aert~Derr", "Aert~Derr", "Aert~Derr", "Aert~Derr", "Aert~Derr", "Aert~Derr", "Aert~Derr") 有很多方法可以做到这一点。下面是一个使用sub sub("~\\w+", "", m.v) [1] "Aert" "Aert" "Aert" "Aert" "Aert" "Aert" "Aert" "Aert" "A

这是我的向量:

m.v<- c("Aert~Derr", "Aert~Derr", "Aert~Derr", "Aert~Derr", 
    "Aert~Derr", "Aert~Derr", "Aert~Derr", "Aert~Derr", "Aert~Derr")

有很多方法可以做到这一点。下面是一个使用
sub

sub("~\\w+", "", m.v)
[1] "Aert" "Aert" "Aert" "Aert" "Aert" "Aert" "Aert" "Aert" "Aert"
或者使用
strsplit

sapply(strsplit(m.v, "~"), "[[", 1)
[1] "Aert" "Aert" "Aert" "Aert" "Aert" "Aert" "Aert" "Aert" "Aert"

如果在
~
前面有多个字母,下面的另一个示例甚至可以工作:

gsub('(.*)~.*', '\\1', m.v)

这里有一些其他的选择:

> gsub("~.*$", "", m.v)
[1] "Aert" "Aert" "Aert" "Aert" "Aert" "Aert" "Aert" "Aert" "Aert"


> library(stringr)
> str_extract(m.v, "^\\w+")
[1] "Aert" "Aert" "Aert" "Aert" "Aert" "Aert" "Aert" "Aert" "Aert"

我们可以使用
stringr
中的
word
函数,并明确提到
sep
arator

library(stringr)
word(m.v, sep = "~")
#[1] "Aert" "Aert" "Aert" "Aert" "Aert" "Aert" "Aert" "Aert" "Aert"

我编辑了这些问题。我需要拔掉这个words@DiogoBastos我编辑了我的答案。对于regexp,只需将
[A-Z]
替换为
\\w+