Почему эти значения не объединяются, когда я использую полное объединение в dplyr? - PullRequest
0 голосов
/ 08 ноября 2019

Я пытаюсь объединить два столбца из одной таблицы (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, которыеЯ пытаюсь добавить в исходную таблицу.

`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

Здесь трудно увидеть заголовок кода, но некоторые значения отсутствуют. Например, у меня должно быть совпадающее значение для Публичной политики в столбцах Дисциплины и Темы для итоговой таблицы. Тем не менее, другие ценности, такие как образование, присоединяются хорошо. Чего мне не хватает?

Когда я ищу строку, включая «Public», используя следующий код:

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

, я получаю TRUE значения в выводе, однако при запускетот же код, использующий "Public Policy" вместо "Public", я получаю только FALSE значений.

1 Ответ

0 голосов
/ 09 ноября 2019

Я понял это. Кажется, кодировка в обоих списках была разной. Я действительно ничего не знаю о работе со строками, поэтому извиняюсь за то, что не использовал правильную терминологию. Однако соединение работало корректно, когда я изменил ab_match, используя следующий код:

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

Спасибо за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...