【问题标题】:Is there a way to filter out rows if the first value in the rows meets a certain criteria. R [duplicate]如果行中的第一个值符合特定条件,有没有办法过滤掉行。 R [重复]
【发布时间】:2020-10-04 22:53:11
【问题描述】:

是否可以根据该行中的 1 个值过滤行?我正在做一些运动统计分析,我有一列包含最终结果和得分,如下所示:W 112-101。 PS 我知道PlusMinus 没有意义我只是想展示我的代码格式。

我想从数据集中提取所有的胜利。我曾尝试使用索引,但我遇到了困难。谢谢!

            Date                Home                 Away              PlusMinus         Final
1   Mon, Oct 29, 2018   Golden State Warriors   Chicago Bulls             36           W 149-124
2   Wed, Feb 6, 2019    Milwaukee Bucks         Washington Wizards        13           W 148-129
3   Fri, Jan 4, 2019    Milwaukee Bucks         Atlanta Hawks             39           L 112-144

【问题讨论】:

  • 你能显示预期的输出吗?也许subset(df1, grepl('^W', Final))
  • @akrun 它只是一个新数据集,仅包含 Final 中获胜的行,或者在本例中为“W”
  • 到目前为止你尝试过什么?已经有很多关于过滤数据的 SO 帖子,它可能有助于了解您的方法,即使这只是为了让人们帮助您指向预先存在的帖子

标签: r indexing filter


【解决方案1】:

我们可以使用grepl 的子字符串模式匹配来为subset 处理行返回一个逻辑向量

df2 <- subset(df1, grepl('^W', Final)) 

或使用filter

library(dplyr)
library(stringr)
df2 <- df1 %>%
           filter(str_detect(Final, '^W'))

【讨论】:

    猜你喜欢
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-29
    • 2022-01-17
    相关资源
    最近更新 更多