代码之家  ›  专栏  ›  技术社区  ›  nak5120

搜索名称和提取ID的列表

  •  1
  • nak5120  · 技术社区  · 6 年前

    我正在使用 gmailr R中的包

    其中一个输出提供了我在Gmail帐户中的可用文件夹列表。

    test<-labels(user_id = "me")
    
    test$labels[[1]]
    
    $id
    [1] "CATEGORY_PERSONAL"
    
    $name
    [1] "CATEGORY_PERSONAL"
    
    $type
    [1] "system"
    

    由此 test 输出,如何通过在我的 测试 名单?

    以下是我的DPUT:

    structure(list(labels = list(structure(list(id = "CATEGORY_PERSONAL", name = "CATEGORY_PERSONAL", type = "system"), .Names = c("id", "name", "type")), structure(list(id = "Label_4332171194581770179", name = "Weather Data/2018 Data/Individual confirmation", type = "user"), .Names = c("id", "name", "type")), structure(list( id = "Label_1", name = "Personal", messageListVisibility = "show", labelListVisibility = "labelHide", type = "user"), .Names = c("id", "name", "messageListVisibility", "labelListVisibility", "type" )), structure(list(id = "CATEGORY_SOCIAL", name = "CATEGORY_SOCIAL", messageListVisibility = "hide", labelListVisibility = "labelHide", type = "system"), .Names = c("id", "name", "messageListVisibility", "labelListVisibility", "type")), structure(list(id = "Label_6629457537668286728", name = "Submissions", messageListVisibility = "show", labelListVisibility = "labelShow", type = "user"), .Names = c("id", "name", "messageListVisibility", "labelListVisibility", "type")), structure(list(id = "Label_7658051581964161134", name = "Weather Data/2018 Data/Individual Complete", type = "user"), .Names = c("id", "name", "type")), structure(list(id = "CATEGORY_FORUMS", name = "CATEGORY_FORUMS", messageListVisibility = "hide", labelListVisibility = "labelHide", type = "system"), .Names = c("id", "name", "messageListVisibility", "labelListVisibility", "type")), structure(list(id = "Label_2850739645999054837", name = "Weather Data/2017 Data", type = "user"), .Names = c("id", "name", "type")), structure(list(id = "Label_2", name = "Receipts", messageListVisibility = "hide", labelListVisibility = "labelShow", type = "user"), .Names = c("id", "name", "messageListVisibility", "labelListVisibility", "type")), structure(list(id = "Label_1014871627782562484", name = "Weather Data/2017 Data/Individual complete", type = "user"), .Names = c("id", "name", "type")), structure(list(id = "Label_4", name = "Work", messageListVisibility = "hide", labelListVisibility = "labelShow", type = "user"), .Names = c("id", "name", "messageListVisibility", "labelListVisibility", "type")), structure(list(id = "Label_22371230351786854", name = "Weather Data/2018 Data", type = "user"), .Names = c("id", "name", "type")), structure(list(id = "IMPORTANT", name = "IMPORTANT", messageListVisibility = "hide", labelListVisibility = "labelHide", type = "system"), .Names = c("id", "name", "messageListVisibility", "labelListVisibility", "type")), structure(list(id = "Label_6142857437130093186", name = "Weather Data/2017 Data/individual confirmation emails", type = "user"), .Names = c("id", "name", "type")), structure(list( id = "Label_3", name = "Travel", messageListVisibility = "show", labelListVisibility = "labelHide", type = "user"), .Names = c("id", "name", "messageListVisibility", "labelListVisibility", "type" )), structure(list(id = "CATEGORY_UPDATES", name = "CATEGORY_UPDATES", messageListVisibility = "hide", labelListVisibility = "labelHide", type = "system"), .Names = c("id", "name", "messageListVisibility", "labelListVisibility", "type")), structure(list(id = "CHAT", name = "CHAT", messageListVisibility = "hide", labelListVisibility = "labelShow", type = "system"), .Names = c("id", "name", "messageListVisibility", "labelListVisibility", "type")), structure(list(id = "Label_4351557222970420897", name = "Weather Data", messageListVisibility = "show", labelListVisibility = "labelShow", type = "user"), .Names = c("id", "name", "messageListVisibility", "labelListVisibility", "type")), structure(list(id = "SENT", name = "SENT", messageListVisibility = "hide", labelListVisibility = "labelShow", type = "system"), .Names = c("id", "name", "messageListVisibility", "labelListVisibility", "type")), structure(list(id = "INBOX", name = "INBOX", messageListVisibility = "hide", labelListVisibility = "labelShow", type = "system"), .Names = c("id", "name", "messageListVisibility", "labelListVisibility", "type")), structure(list(id = "TRASH", name = "TRASH", messageListVisibility = "hide", labelListVisibility = "labelShow", type = "system"), .Names = c("id", "name", "messageListVisibility", "labelListVisibility", "type")), structure(list(id = "CATEGORY_PROMOTIONS", name = "CATEGORY_PROMOTIONS", messageListVisibility = "hide", labelListVisibility = "labelHide", type = "system"), .Names = c("id", "name", "messageListVisibility", "labelListVisibility", "type" )), structure(list(id = "DRAFT", name = "DRAFT", messageListVisibility = "hide", labelListVisibility = "labelShow", type = "system"), .Names = c("id", "name", "messageListVisibility", "labelListVisibility", "type" )), structure(list(id = "SPAM", name = "SPAM", messageListVisibility = "hide", labelListVisibility = "labelHide", type = "system"), .Names = c("id", "name", "messageListVisibility", "labelListVisibility", "type" )), structure(list(id = "STARRED", name = "STARRED", messageListVisibility = "hide", labelListVisibility = "labelHide", type = "system"), .Names = c("id", "name", "messageListVisibility", "labelListVisibility", "type" )), structure(list(id = "UNREAD", name = "UNREAD", type = "system"), .Names = c("id", "name", "type")), structure(list(id = "Label_2707339598948997574", name = "Weather Data/2018 Data/Complete", type = "user"), .Names = c("id", "name", "type")), structure(list(id = "Label_8600983624680593897", name = "Weather Data/2017 Data/Complete", type = "user"), .Names = c("id", "name", "type")))), .Names = "labels")

    1 回复  |  直到 6 年前
        1
  •  1
  •   Julius Vainora    6 年前

    我们可以用双人间 sapply :

    sapply(test[sapply(test, `[[`, "name") == "Submissions"], `[[`, "id")
    # [1] "Label_6629457537668286728"
    

    哪里

    sapply(test, `[[`, "name") == "Submissions"
    #  [1] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
    # [19] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
    

    查找“提交”案例,然后查找外部 斯普林特 检查每一个火柴和提取物 id .

    我定义 test <- input[[1]] 在哪里 input 是您提供的数据(一个元素列表)。

    另一个选择是

    na.omit(sapply(test, function(x) if(x$name == "Submissions") x$id else NA))
    

    在检查完 test 我们马上回来 身份证件 ,如果有匹配。然后 na.omit 删除其余元素。