如何检查列中的每一行是否包含子字符串

use*_*522 6 r grepl

假设我在数据框中有一列“名称” df

apple
apple123
app
be
aple
Run Code Online (Sandbox Code Playgroud)

并且,我想检查该name列中的每一行是否都包含单词apple。我这样做的方法是使用grepl, grepl('apple',df$name),我希望它会返回'TRUE','TRUE','FALSE','FALSE','FALSE',但是,它返回了 5 'FALSE'

我在这里做错了什么吗?如果没有grep,我应该使用什么函数?

Pau*_*oso 6

我运行得很好

dat <- c('apple', 'apple123', 'app', 'be', 'aple')
grepl('apple', dat)
[1]  TRUE  TRUE FALSE FALSE FALSE
dat[grepl('apple', dat)]
[1] "apple"    "apple123"
Run Code Online (Sandbox Code Playgroud)

这与 data.frame 完全相同

dat <- data.frame(v=c('apple', 'apple123', 'app', 'be', 'aple'))
grepl('apple', dat$v)
[1]  TRUE  TRUE FALSE FALSE FALSE
Run Code Online (Sandbox Code Playgroud)

如果你这样做是一样的

with(dat, grepl('apple', v))
Run Code Online (Sandbox Code Playgroud)