【问题标题】:listwise deletion of rows with NA in a given column在给定列中按列表删除具有 NA 的行
【发布时间】:2014-05-26 22:53:48
【问题描述】:

我正在尝试删除给定列具有该行的 NA 的数据框中的行。比如下面的dataframe

ID# Name Sales Price 
1    NA    15   34
2    Jay   NA   52
3    Roy   NA   21
4    NA    56   NA
5    Jake  60   20

我想删除名称列具有 NA 的所有行。所以我会留下一个看起来像这样的数据框:

ID# Name Sales Price 
2    Jay   NA   52
3    Roy   NA   21
5    Jake  60   20

我正在尝试 new_df

【问题讨论】:

    标签: r function missing-data


    【解决方案1】:
    df <- df[!is.na(df$Name), ]
    

    示例

    df <- data.frame(Name = c(NA, "Jay", "Roy", NA, "Jake"), Sales = c(15, NA, NA, 56, 60), Price = c(34, 52, 21, NA, 20), stringsAsFactors = FALSE)
    df <- df[!is.na(df$Name), ]
    dim(df) # 3 3 
    

    【讨论】:

    • (+1) 还值得指出subset(d, !is.na(d$Name))
    猜你喜欢
    • 1970-01-01
    • 2020-07-22
    • 2019-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 2020-01-07
    • 2021-05-07
    相关资源
    最近更新 更多