2017-02-15 41 views
2

我有这样一个字符串列表,我想所有的品牌名称:列表成员引用

s = c("FERRARI - 612 SCAGLIETTI" ,"PORSCHE - 918", "ASTON MARTIN - DBS") 
    tt= strsplit(s," -") 

但这里tt是列表的列表。如何分割这tt?我试图

tt[[1:length(tt)]][1] 

,但得到这个错误:

Error in tt[[1:length(tt)]] : recursive indexing failed at level 2. 

什么建议吗?

回答

1

我们可以使用sub匹配零或跟-更多的空间(\\s*),其次是其他字符和空白(""

sub("\\s*-.*", "", s) 
#[1] "FERRARI"  "PORSCHE"  "ASTON MARTIN" 

更换关于“TT”,它是list,所以我们可以通过listlapply/sapply/vapply等循环并得到第一个元素

sapply(tt, head, 1) 
#[1] "FERRARI"  "PORSCHE"  "ASTON MARTIN" 
+1

这很聪明。谢谢。 – newleaf