【问题标题】:Subset dataframe by factor variable按因子变量子集数据帧
【发布时间】:2017-05-31 11:48:15
【问题描述】:

这里是新手。我确信这很容易,并且之前已经回答过,但我现在已经找了一个多小时了,但找不到答案。

我有一个包含 3 个变量的数据框:

> str(statement)
'data.frame':   16464206 obs. of  3 variables:
 $ statement_type_cd: Factor w/ 428 levels "A00001","A00002"...
 $ statement_text   : Factor w/ 9894526 levels...
 $ serial_no        : int  60146682 60149828 70011210...

我想提取与statement_type_cd 观察值GSXXXX 匹配的statement_text 观察值,即X 任意数字。

换句话说,我如何通过statement_type_cd 变量中以GS 开头的任何观察来子集数据帧?

谢谢:)

【问题讨论】:

  • 使用substr提取前2个字母并检查它们是否等于“GS”。

标签: r dplyr subset


【解决方案1】:

我们可以使用grepl从字符串的开头(^)匹配模式'GS'来创建一个逻辑向量,并将其用于subset数据集

statementsub <- subset(statement, grepl("^GS", statement_type_cd))

或者tidyverse

library(dplyr)
statementsub <- statement %>%
                    filter(grepl("^GS", statement_type_cd))

【讨论】:

  • 非常感谢您的回答 akrun!效果很好!很有趣,当我看到你的回答时,我正在阅读 regular expressions :)
猜你喜欢
  • 1970-01-01
  • 2017-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多