在R中破折号之前提取字符串

时间:2018-06-21 18:46:43

标签: r string extract

我有一列名称,格式混合了AAA和AAA-D。我想在破折号之前提取名称(如果有破折号)或保留非破折号。 列表是

Name
W1-D1
Empty
W2-D1

我要提取的是

Name
W1
Empty
W2

我发现了类似v1<-gsub("^(.*?)-.*", "\\1",v)的几种语法,但是这在我的列表中不起作用,我在v1中得到了这个“ c(\“ W1”。我使用的语法有误吗?

2 个答案:

答案 0 :(得分:1)

下面的正则表达式可以做到这一点。

sub("(^[^-]+)-.*", "\\1", Name)
#[1] "W1"    "Empty" "W2" 

数据。

Name <- scan(what = character(), text ="
W1-D1
Empty
W2-D1
")

答案 1 :(得分:1)

您也可以使用stringr

library(stringr)

v2<-str_extract(v, "[^-]+")