【问题标题】:Compare list of Vector with Desired String Matches - If Not a Match Delete DF Row R将向量列表与所需的字符串匹配进行比较 - 如果不匹配,则删除 DF Row R
【发布时间】:2019-01-17 20:33:59
【问题描述】:

我有兴趣创建一个包含关键字的向量,这些关键字是单独数据框的类别列中包含的内容的正确标题。我希望能够创建一个函数来比较类别列与关键字向量的匹配,如果它们不存在,则从数据框中删除不正确的行。

以下是所需关键字的示例:

“Current SharePrice”、“Current NAV”、“Current Premium/Discount”、“52WkAvg SharePrice”、“52WkAvg NAV”、“52WkHigh Premium/Discount”等

我正在尝试从清理产生结果的大表中删除一些边缘情况,例如:

“52WkLow 资产净值 52wLow”

这是由于缺少数据而发生的。此外,作为冗余检查,打印或存储在清洁过程中删除了哪些完整行将非常有帮助。

【问题讨论】:

    标签: r data-cleaning stringr


    【解决方案1】:

    使用dplyr

    filter(df, category %in% keywords)
    

    (以及删除的行:)

    filter(df, !(category %in% keywords))
    

    基地:

    df[df$category %in% keywords,]
    

    删除的行:

    df[!(df$category %in% keywords),]
    

    【讨论】:

    • 而“关键字”在任何一种情况下都可以引用具有多个元素的字符向量?谢谢。
    • 是的,插入向量的名称而不是单词“keywords”、“category”的类别和“df”的数据框。
    • 谢谢你,我会的!
    • 奇怪的是,当我传播应该是清理过的表时,不正确的值仍然存在。这是我的步骤:原来的三列df被称为data2列“Ticker, Category, Value”。 test_clean_removed % spread(Category,Value)
    • 您确定 dplyr 已加载吗?尝试 dplyr::filter 以确保。
    猜你喜欢
    • 1970-01-01
    • 2022-10-15
    • 2021-11-12
    • 2021-04-17
    • 1970-01-01
    • 2016-03-23
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多