R函数删除至少一个不适用的所有行,但不能使用dplyr

问题描述 投票:0回答:4

您能帮我看看为什么我的功能不起作用吗?给定此表,my_df

  sexo edad
1    m   23
2    f   34
3   NA   34
4    f   NA
5    m   33

我想创建一个函数,删除带有NA字段的每一行,以将其用于不同的数据帧。我做了这个功能:

filter_out_nas = function(df){
  vars = names(df)
  for(var in vars){
    print(var)
    df = filter(df, !is.na(var))
  }
  return(df)
}

我希望输出看起来像这样:

  sexo edad
1    m   23
2    f   34
5    m   33

但是,当我尝试在my_df上使用该功能时,它什么也不做:

library(dplyr)
my_df = filter_out_nas(m_df)
## returs the same table given above, `my_df` does not change. 

非常感谢您的时间

r function dplyr na
4个回答
2
投票

我不清楚您想要什么,所以这里有两件事可能会有所帮助。

First:


0
投票

对于此处的基本R选项,您可以仅将rowSumsis.na结合使用:


0
投票

您可以用简单的方法来做!


0
投票

最简单的解决方案应该是na.omit(df)

© www.soinside.com 2019 - 2024. All rights reserved.