首页 > 解决方案 > 如何根据R中之前的列删除特定值

问题描述

我在 R 中有一个包含变量列表的数据框。但是,我已经打印了我感兴趣的最后两列。我只想在 b s_Scores == bs_24时删除value列中所有出现的NA 。

bs_Scores   value
bs_0    16.7
bs_1    41.7
bs_12   33.3
bs_24   NA
bs_0    25
bs_1    41.7
bs_12   NA
bs_24   0
bs_0    16.7
bs_1    41.7
bs_12   16.7
bs_24   16.7
bs_0    NA

本质上,我想删除 bs_24 中在 value 列中具有 NA 的所有行,同时保留 bs_0、bs_1 和 bs_12 中的所有 NA。

所以它应该看起来像这样

bs_Scores   value
bs_0    16.7
bs_1    41.7
bs_12   33.3
bs_0    25
bs_1    41.7
bs_12   NA
bs_24   0
bs_0    16.7
bs_1    41.7
bs_12   16.7
bs_24   16.7
bs_0    NA

谢谢!

标签: rdataframedplyr

解决方案


使用子集,dplyr 您可以使用下面的代码


library(dplyr)

df %>% subset(!is.na(value) & bs_Scores != "bs_24" )

推荐阅读