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+
。