R-过滤数据帧中的数据(类似字词和其他情况)

时间:2019-05-29 00:24:23

标签: r

我正在尝试找出过滤数据框的最佳方法。 我有以下数据示例:

                        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),它将起作用,但是我认为这不是最好的方法。

有没有一种方法可以优化我过滤这些数据的方式?

谢谢!

1 个答案:

答案 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"))