r - 阻止dplyr加入NA

标签 r dplyr

我想进行2 df的全连接。令我惊讶的是,如果dplyr的默认行为是同时存在于两个df中,则它们会加入NA。是否有功能可防止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的记录,然后将它们附加到结果中(因为这看起来很笨拙)。

最佳答案

您可以使用na_matches = "never"。这是在v.0.7.0的NEWS中,但是我没有在文档中看到它。默认值为na_matches = "na"

这将返回两行而不是三行:

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

  a b c
1 5 1 4
2 9 3 6

关于r - 阻止dplyr加入NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46161553/

相关文章:

r - R 中 facet_grid() 的 labeller() 函数内的 tidy_eval

RMarkdown : How to change headline in table of contents in R Markdown?

html - R Shiny : htmlOutput removes white spaces I need

r - 如何使用 ggplot2 在直方图中添加汇总统计信息?

R:从数值变量和自定义/开放式/单值区间创建分类变量

r - R中数据帧的测试结构

r - 如何获取R中数据框中每个单元格中数字旁边出现的字符串百分比?

R:来自矩阵的多个晶格水平图

r - 具有可变列名的函数

r - 在 `arrange` 数据管道函数中将排序方向传递给 `dplyr`