filter()和str_detect()时找不到列对象

时间:2018-02-18 22:46:57

标签: r dplyr stringr

我有以下数据集:

df <- data.frame(a = c("T", "F", "T"), b = c("USA", "SIG", "FRA"))

我想过滤掉a列值为F的子集。我试过了:

library(dplyr)
library(stringr)
df %>% 
    filter(str_detect(a, "F"))

但我得到了Error in stri_detect_regex(string, pattern, opts_regex = opts(pattern)) : object 'a' not found

有人可以帮忙解释一下吗?

1 个答案:

答案 0 :(得分:4)

首先,在提供使用的示例代码方面做得很好,给出了错误和正确的格式。希望我能给你一些徽章。

您的代码是正确的。您没有执行整个代码块,因此您会收到该错误。您可能正在运行旧版本的R / RStudio,因为在最近的版本中,crtl+enter命令上的filter将执行整个代码块。在旧版本中,它不会以这种方式运行。

选择输入代码块并运行它或将代码放在一行:

df %>%filter(str_detect(a, "F"))