【问题标题】:List member reference列出成员参考
【发布时间】:2017-02-15 16:49:59
【问题描述】:

我有一个这样的字符串列表,我想获取所有品牌名称:

    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.

有什么建议吗?

【问题讨论】:

    标签: r list reference


    【解决方案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"
    

    【讨论】:

    • 这很聪明。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2013-11-14
    • 2013-12-27
    • 2014-11-12
    • 2013-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多