在R中的破折号之前提取字符串
extract string before dash in R
我有一列名称,格式是AAA和AAA-D的混合格式。我想在破折号之前提取名称(如果它有破折号)或保留非破折号的名称。
该列表是
Name
W1-D1
Empty
W2-D1
我要提取的是
Name
W1
Empty
W2
我发现了几个像 v1<-gsub("^(.*?)-.*", "\1",v)
这样的语法,但这在我的列表中不起作用,我在 v1 中得到了这个“c(\"W1"。我使用这个语法错了吗?
下面的正则表达式就可以做到。
sub("(^[^-]+)-.*", "\1", Name)
#[1] "W1" "Empty" "W2"
数据.
Name <- scan(what = character(), text ="
W1-D1
Empty
W2-D1
")
你也可以使用 stringr
library(stringr)
v2<-str_extract(v, "[^-]+")
我有一列名称,格式是AAA和AAA-D的混合格式。我想在破折号之前提取名称(如果它有破折号)或保留非破折号的名称。 该列表是
Name
W1-D1
Empty
W2-D1
我要提取的是
Name
W1
Empty
W2
我发现了几个像 v1<-gsub("^(.*?)-.*", "\1",v)
这样的语法,但这在我的列表中不起作用,我在 v1 中得到了这个“c(\"W1"。我使用这个语法错了吗?
下面的正则表达式就可以做到。
sub("(^[^-]+)-.*", "\1", Name)
#[1] "W1" "Empty" "W2"
数据.
Name <- scan(what = character(), text ="
W1-D1
Empty
W2-D1
")
你也可以使用 stringr
library(stringr)
v2<-str_extract(v, "[^-]+")