我有一个像这样的字符串列表,我希望获得所有品牌名称:
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.
有什么建议吗?
答案 0 :(得分:1)
我们可以使用sub
来匹配零个或多个空格(\\s*
),然后是-
后跟其他字符,并将其替换为空白(""
)
sub("\\s*-.*", "", s)
#[1] "FERRARI" "PORSCHE" "ASTON MARTIN"
关于&#t;'它是list
,因此我们可以使用list
等循环lapply/sapply/vapply
并获取第一个元素
sapply(tt, head, 1)
#[1] "FERRARI" "PORSCHE" "ASTON MARTIN"