r - 如何删除列 : the R equivalent of dropna(subset) from python pandas 子集的缺失观测值

标签 r dplyr tidyverse

考虑 R 中的一个数据框,我想在其中删除第 6 行,因为它缺少对变量 var1:var3 的观察。但是数据框对 idyear 有有效的观察结果。请参阅下面的代码。

在python中,这可以通过两种方式完成:

  1. 使用 df.dropna(subset = ['var1', 'var2', 'var3'], inplace=True)
  2. 使用 df.set_index(['id', 'year']).dropna()

如何使用 tidyverse 在 R 中做到这一点?

library(tidyverse)
df <- tibble(id = c(seq(1,10)), year=c(seq(2001,2010)), 
             var1 = c(sample(1:100, 10, replace=TRUE)), 
             var2 = c(sample(1:100, 10, replace=TRUE)), 
             var3 = c(sample(1:100, 10, replace=TRUE)))
df[3,4] = NA
df[6,3:5] = NA
df[8,3:4] = NA
df[10,4:5] = NA

最佳答案

我们可能会使用 complete.cases

library(dplyr)
df %>%
    filter(if_any(var1:var3, complete.cases))

-输出

# A tibble: 9 x 5
     id  year  var1  var2  var3
  <int> <int> <int> <int> <int>
1     1  2001    48    55    82
2     2  2002    22    83    67
3     3  2003    89    NA    19
4     4  2004    56     1    38
5     5  2005    17    58    35
6     7  2007     4    30    94
7     8  2008    NA    NA    36
8     9  2009    97   100    80
9    10  2010    37    NA    NA

关于r - 如何删除列 : the R equivalent of dropna(subset) from python pandas 子集的缺失观测值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68094389/

相关文章:

r - 循环遍历行并计算与 R 中的多个条件匹配的行数

r - 如何选择 `selectInput()` 作为数据框中的元素,将其粘贴在一起,用 "|"分隔并对齐?

R ggplot : "cross effect" in legend (not going away with show. 图例 = NA)

r - 避免在 dplyr 非标准评估中重复取消引用

r - 根据 dplyr 中的字符串(或字符串向量)应用过滤器向量

r - 解压 ... 缺少参数

R无法加载dplyr

r - 当按其他数据框变量分组时,如何生成包含命名向量的列表列?

根据原始列名称重命名列 R

r - 在函数中传递字符串作为参数时如何保留列名