Al3*_*xEP 3 regex r dplyr tidyverse tidyselect
我正在尝试使用该dplyr::filter()功能来过滤我的小标题的特定行。
这是我的小标题的一部分head(raw.tb):
A tibble: 738 x 4
geno ind X Y
<chr> <chr> <int> <int>
1 san1w16 A1 467 383
2 san1w16 A1 465 378
3 san1w16 A1 464 378
4 san1w16 A1 464 377
5 san1w16 A1 464 376
6 san1w16 A1 464 375
7 san1w16 A1 463 375
8 san1w16 A1 463 374
9 san1w16 A1 463 373
10 san1w16 A1 463 372
# ... with 728 more rows
Run Code Online (Sandbox Code Playgroud)
当我要求: raw.tb %>% dplyr::filter(ind == contains("A"))
我得到:
Error in filter_impl(.data, quo) :
Evaluation error: No tidyselect variables were registered
在我看来,unique(raw.tb$ind)是:
[1] "A1" "A10" "A11" "A12" "A2" "A3" "A4" "A5" "A6" "A7" "A8" "A9" "B1"
[14] "B10" "B11" "B12" "B2" "B3" "B4" "B5" "B6" "B7" "B8" "B9" "C1" "C10"
[27] "C11" "C12" "C2" "C3" "C4" "C5" "C6" "C7" "C8" "C9" "D1" "D10" "D11"
[40] "D12" "D2" "D3" "D4" "D5" "D6" "D7" "D8" "D9" "E1" "E10" "E11" "E12"
[53] "E2" "E3" "E4" "E5" "E6" "E7" "E8" "E9" "F1" "F10" "F11" "F12" "F2"
[66] "F3" "F4" "F5" "F6" "F7" "F8" "F9" "G1" "G10" "G11" "G2" "G3" "G4"
[79] "G5" "G6" "G7" "G8" "G9" "H1" "H10" "H11"
Run Code Online (Sandbox Code Playgroud)
我想raw.tb$ind使用tidyverse语言仅提取以“ A”开头的行。
(我知道如何在基准R中做到这一点,但我的目标是使用tidyverse)。
非常感谢您的任何反馈
的filter期望的逻辑矢量来过滤行。所述select辅助(?select_helpers)函数contains来选择基于一些图案的数据集的列。为了过滤行,我们可以使用greplfrombase R
raw.tb %>%
dplyr::filter(grepl("A", ind))
Run Code Online (Sandbox Code Playgroud)
或str_detect来自stringr(tidyverse
raw.tb %>%
dplyr::filter(stringr::str_detect(ind, "A"))
Run Code Online (Sandbox Code Playgroud)