аргумент ...

ел бы сделать полное соединение из 2-х df. К моему удивлению, поведение dplyr по умолчанию состоит в том, чтобы присоединиться к NA, если они существуют в обоих df. Есть ли функция, которая не позволяет dplyr делать это?

Вот пример с внутренним соединением:

x <- data.frame(a = c(5, NA, 9), b = 1:3)
y <- data.frame(a = c(5, NA, 9), c = 4:6)
z <- dplyr::inner_join(x, y, by = 'a')

Я хотел бы, чтобы z содержал только 2 записи, а не 3. В идеале, я хочу сделать это без необходимости вручную отфильтровывать записи с помощью NA, а затем добавлять их к результату (так как это кажется неуклюжим).

Ответы на вопрос(1)

Решение Вопроса

na_matches = "never", Это вНОВОСТИ для v. 0.7.0, но я не вижу этого в документации. По умолчаниюna_matches = "na".

Это возвращает две строки вместо трех:

dplyr::inner_join(x, y, by = 'a', na_matches = "never")

  a b c
1 5 1 4
2 9 3 6
 cderv11 сент. 2017 г., 23:27
Вы можете найти информацию оna_match в документации о методе?dplyr::join.tbl_df так как этот аргумент только для data.frame
 Kalin04 янв. 2019 г., 21:25
Мне бы хотелось, чтобы в документах, упомянутых @cderv, были примеры, в которых используютсяna_matches аргумент ...
 matsuo_basho11 сент. 2017 г., 20:11
Очень полезно. Я удивлен тем, что соответствие по NA является поведением по умолчанию, не согласен с логикой.
 matsuo_basho13 сент. 2017 г., 18:45
@cderv, я вижу упоминание «см. документацию по методу для деталей отдельных источников данных» в справке? dplyr :: inner_join, но как мы узнаем, как перейти к? dplyr :: join.tbl_df, чтобы узнать о na_matches аргумент?

Ваш ответ на вопрос