простая ошибка соединения, когда некоторые строки соединяются, а некоторые нет - PullRequest
1 голос
/ 12 марта 2019

У меня есть два кадра данных, к которым я пытаюсь присоединиться, которые должны быть прямыми, но я вижу некоторое аномальное поведение.

Кадр данных A

Name  Sample           Country      Path
John   S18902             UK     /Home/drive/John 
BOB    135671             USA        /Home/drive/BOB
Tim    GB12345_serum_63   UK     /Home/drive/Tim 
Wayne  12345_6789         UK     /Home/drive/Wayne

Кадр данных B

 Surname    Sample            State        FILE
  Paul     S18902              NJ        John.csv 
  Gem      135671              PP        BOB.csv
  Love     GB12345_serum_63    AP        Tim.csv 
  Dave     12345_6789          MK        Wayne.csv

Я использую разметку R, чтобы выполнить простое объединение, используя следующую команду Dataframec <- DataframeA%>% left_join (DataframeB, by = "Sample", all.x = T)

Объединение всех строккроме строки, в которой sample == GB12345_serum_63

Это должно быть простое исправление, но у меня нет идей.

Спасибо

1 Ответ

1 голос
/ 12 марта 2019

Если вы вырезаете и вставляете свои данные непосредственно в свой вопрос, то причина этого в том, что ваши ключевые значения технически отличаются из-за разного количества пробелов.

Я вырезал и вставлял из вашеговопрос от начала значения до начала имени соседнего столбца.Таким образом, для 'страны' в первом случае и для 'состояния' во втором случаеЭту проблему можно решить, удалив лишние пробелы из значений ключей следующим образом, используя регулярные выражения: gsub("^\\s+|\\s+$", "", x)

DataframeA$Sample <- gsub("^\\s+|\\s+$", "", DataframeA$Sample)
DataframeB$Sample <- gsub("^\\s+|\\s+$", "", DataframeB$Sample)

Теперь ваше объединение должно работать

...