我正在尝试找出过滤数据框的最佳方法。 我有以下数据示例:
name spouse
1 Adanel Belemir
19 Bodo Proudfoot
9 Angrim
17 Nurwë
25 Tar-Telemmaitë Unnamed wife
23 Tar-Vanimeldë Herucalmo
5 Fire-drake of Gondolin
22 Tarannon Falastur Berúthiel
2 Boromir
10 Anárion Unnamed wife
15 Angelimar
11 Ar-Pharazôn Tar-MÃriel
12 Ar-Sakalthôr Unnamed wife
24 Tar-Telperiën None
6 Ar-Adûnakhôr Unnamed wife
16 Angbor
3 Lagduf
4 Tarcil Unnamed wife
8 Angrod Eldalótë
18 Linda (Baggins) Proudfoot
7 Annael
21 Pengolodh
13 Ar-Gimilzôr Inzilbêth
20 Penlod
14 Angelimir Unnamed wife
要处理数据并过滤空的配偶行以及包含无效数据的行,例如“未命名的妻子”,“无”,“未知”等,我正在使用以下代码:
interacialMariage <-data %>% filter(spouse != "",spouse != "Unnamed wife", spouse != grepl("none",ignore.case = TRUE, spouse)) %>% select(name, spouse)
我想知道是否有任何“包含”功能可以帮助我过滤以“ None”开头的所有单词。
我尝试了grepl()
函数,但是没有用。如果我为每种情况创建许多(配偶!= case),它将起作用,但是我认为这不是最好的方法。
有没有一种方法可以优化我过滤这些数据的方式?
谢谢!
答案 0 :(得分:1)
尝试使用str_detect
中的tidyverse
。语法:
# this is case sensitive
df %>% str_detect(col_name, "search term")
# this is case free
df %>% str_detect(col_name, regex(ignore_case = "search term"))