当我在dplyr中使用完全联接时,为什么这些值不联接?

时间:2019-11-08 20:12:50

标签: r dataframe dplyr

我正在尝试将一个表(ab_match)中的两列连接到另一张表(成员),并使两者之间有一个相似的列。但是,第一个表中大约一半的值根本没有连接,我也不知道为什么。

当我在两个表之间运行反联接时,我可以看到未联接的值。

这是成员微词的开始:

`Unique ID` `Academic Background`   
   <chr>       <chr>                   
 1 1014        NA                      
 2 863         NA                      
 3 859         Political Science       
 4 855         NA                      
 5 679         NA                      
 6 141         NA                      
 7 5146        Sociology               
 8 5146        Women and Gender Studies
 9 5146        Public Policy           
10 5146        Education   

,这里是ab_match小标题-“学术背景”中的大多数值在“学科”和“主题”列中都有对应的值,我尝试将它们附加到原始表中。

`Academic Background`    Discipline               Topic                          
   <chr>                    <chr>                    <chr>                          
 1 African American Studies African Diaspora Studies Black / African American Issues
 2 Anthropology             Anthropology             NA                             
 3 Biology                  Biology                  NA                             
 4 Business                 Business                 NA                             
 5 Civic Engagement         NA                       Civic Engagement               
 6 Computer Science         Computer Science         NA                             
 7 Criminal Justice         NA                       Criminal Justice               
 8 Democracy                NA                       Democracy                      
 9 Demography               Demography               NA                             
10 Ecology                  Ecology                  NA   

当我使用任何类型的联接进行联接时,这是我使用的代码:

ab <- left_join(members, ab_match, by="Academic Background")

这是我得到的结果:

 `Unique ID` `Academic Background`    Discipline        Topic    
   <chr>       <chr>                    <chr>             <chr>    
 1 1014        NA                       NA                NA       
 2 863         NA                       NA                NA       
 3 859         Political Science        Political Science NA       
 4 855         NA                       NA                NA       
 5 679         NA                       NA                NA       
 6 141         NA                       NA                NA       
 7 5146        Sociology                Sociology         NA       
 8 5146        Women and Gender Studies Gender Studies    Gender   
 9 5146        Public Policy            NA                NA       
10 5146        Education                Education         Education

在这里很难看到使用代码的开头,但是缺少一些值。例如,我应该在产生的小标题的“学科”和“主题”列中为“公共政策”提供一个匹配值。但是,其他价值观(例如教育)也可以很好地融合在一起。我想念什么?

当我使用以下代码搜索包含“公共”的字符串时:

str_detect(ab_match$`Academic Background`, "Public")

我在输出中获得TRUE值,但是当我使用"Public Policy"代替"Public"运行相同的代码时,我仅获得FALSE值。

1 个答案:

答案 0 :(得分:0)

我知道了。似乎两个列表中的编码不同。我对使用字符串一无所知,因此对使用不正确的术语表示歉意。但是,当我使用以下代码修改ab_match时,该连接工作正常:

ab_match$`Academic Background`<-str_replace_all(ab_match$`Academic Background`, "[:space:]", " ")

谢谢您的帮助!