R - 部分字符串匹配子集

时间:2016-06-16 21:11:39

标签: r dataframe rstudio

我有一个名为LeaseDF的数据框。我希望拉出Team_Code列包含字母" t"的所有观察结果。我的简单代码如下。不知怎的,什么都没回来。我也尝试过使用grepl函数进行循环,并使用grepl进行lapply无济于事。谢谢。

subset <- LeaseDF[grep("^t-", LeaseDF$TEAM_CODE),]

1 个答案:

答案 0 :(得分:3)

我认为用&#34; &#34;你的意思是子集?

由于你没有添加你的数据,我给你的例子,我使用了包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