在R中提取字符串的一部分

时间:2014-01-31 10:33:31

标签: string r extract gsub

我想知道你是否可以帮我用R提取字符串的一部分。我有一些列d包含以下元素:

d<-
    [1] Homo sapiens (Human)                                                                       
     [2] Pan troglodytes (Chimpanzee)                                                               
     [3] Pan troglodytes (Chimpanzee)                                                               
     [4] Nomascus leucogenys (Northern white-cheeked gibbon) (Hylobates leucogenys)                 
     [5] Macaca fascicularis (Crab-eating macaque) (Cynomolgus monkey)                              
     [6] Macaca mulatta (Rhesus macaque)                                                            
     [7] Macaca mulatta (Rhesus macaque)                                                            
     [8] Callithrix jacchus (White-tufted-ear marmoset)

我想在括号前选择所有内容,即答案是

d<-
    [1] Homo sapiens                                                     
     [2] Pan troglodytes                                                             
     [3] Pan troglodytes                                                              
     [4] Nomascus leucogenys                 
     [5] Macaca fascicularis                           
     [6] Macaca mulatta    

由于

2 个答案:

答案 0 :(得分:3)

R中最简单的方法是删除从括号开始的所有内容(包括前面的空格,如果有的话):

result = sub(' *\\(.*$', '', d)

答案 1 :(得分:3)

此外,stringr是一个很棒的包。

library(stringr)
s <- "Homo sapiens (Human)"

t <- str_match(s, "^(.+)\\s\\(")[2]
t
[1] "Homo sapiens"