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

Edw*_*Lin 2 r stringr dplyr

我有以下数据集:

df <- data.frame(a = c("T", "F", "T"), b = c("USA", "SIG", "FRA"))
Run Code Online (Sandbox Code Playgroud)

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

library(dplyr)
library(stringr)
df %>% 
    filter(str_detect(a, "F"))
Run Code Online (Sandbox Code Playgroud)

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

任何人都可以帮忙并给出一些解释吗?

Ama*_*mar 5

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

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

要么选择输入代码块并运行它,要么将代码放在一行中:

df %>%filter(str_detect(a, "F"))
Run Code Online (Sandbox Code Playgroud)