R语言 移除R数据框架一列中带有NA的行
在R编程语言中,DataFrame的列可以有以 NA 表示的空值 。 在这篇文章中,我们将看到如何删除一列中带有NA的行。我们将看到各种方法来删除有NA值的行。
使用中的数据 。
方法
- 创建一个数据框架
- 选择要删除的行所依据的列
- 遍历该列,寻找NA值
- 选择行
- 使用一个特定的方法删除这些行
方法1:使用 drop_na()
drop_na() 删除数值等于NA的记录。为了使用这种方法,我们需要使用 “tidyr “库,可以安装它。
install.packages(“tidyverse”)
语法
drop_na(name_of_the_column)
例子
# Creating dataframe
student=data.frame(name=c("Ram","Geeta","John","Paul",
"Cassie","Jim","Dwight")
,maths=c(7,8,NA,9,10,8,9)
,science=c(5,7,6,8,NA,7,8)
,history=c(7,NA,7,7,NA,7,7))
print(student)
library(tidyr)
student %>% drop_na(maths)
输出
方法2:使用is.na()
is.na()函数首先在一列中寻找na值,然后丢弃这些行。
语法
is.na(列的名称)
例子
# Creating dataframe
student=data.frame(name=c("Ram","Geeta","John","Paul",
"Cassie","Jim","Dwight")
,maths=c(7,8,NA,9,10,8,9)
,science=c(5,7,6,8,NA,7,8)
,history=c(7,NA,7,7,NA,7,7))
print(student)
student[!is.na(student$science),]
输出
方法3:使用complete.cases()
这个函数的功能与上述两个方法类似
语法
complete.cases(列的名称)
例子
# Creating dataframe
student=data.frame(name=c("Ram","Geeta","John","Paul",
"Cassie","Jim","Dwight")
,maths=c(7,8,NA,9,10,8,9)
,science=c(5,7,6,8,NA,7,8)
,history=c(7,NA,7,7,NA,7,7))
print(student)
student[complete.cases(student$history),]
输出