R - 部分字符串匹配子集

3
我有一个名为LeaseDF的数据框。我想要提取所有Team_Code列包含字母"t"的观察值。我使用的简单代码如下所示。不知何故没有返回任何内容。我也尝试了使用grepl函数的for循环和lapply与grepl,但都无济于事。谢谢。
subset <- LeaseDF[grep("^t-", LeaseDF$TEAM_CODE),]

2
如果你只是想检查字母“t”的出现,为什么要使用正则表达式“^t-”? - Konrad Rudolph
1个回答

11
我猜你所说的“pull”是指子集?
由于你没有提供数据,我给你举个例子,我使用了sqldf包。
df <- data.frame(name = c('monday','tuesday','wednesday', 'thursday', 'friday'))
require(sqldf)
# Select specific values from a column i.e., containing letter "t"
sqldf("select * from df where name LIKE '%t%'")
# And output
     name
1  tuesday
2 thursday

或者使用grep

df$name[grep("t", df$name) ]
# And output
[1] tuesday  thursday
Levels: friday monday thursday tuesday wednesday

# OR use ^t if you want beginning of the string
df[grep("^t", df$name), ] 

或者使用grepl功能,您还可以排除不匹配的观测值。

df[grepl("t", df$name), , drop = FALSE]
# Output
      name
2  tuesday
4 thursday

是的,我的意思是子集。好的,这很有道理。谢谢!最终我自己使用了sqldf包。但我还在寻找一种不使用该包的方法。 - Lyle
我很高兴能够帮助。 - Miha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接