R语言 如何删除R数据框架中带有部分或全部NA的行

R语言 如何删除R数据框架中带有部分或全部NA的行

在这篇文章中,我们将讨论如何在R编程语言中删除带有部分或全部NA的行。

我们将考虑一个数据框架,然后在R中删除行。让我们创建一个有3列6行的数据框架。

# create dataframe
data = data.frame(names=c("manoj", "bobby", "sravan", "deepu", NA, NA),
                  id=c(1, 2, 3, NA, NA, NA), 
                  subjects=c("java", "python", NA, NA, "java", "python"))
  
  
# display
print(data)

输出 :

如何删除R数据框架中带有部分或全部NA的行?

方法1:使用na.省略()函数删除含有NA的行

在这里,这个函数将删除所有包含NA的行。

语法:

na.omit(dataframe)

其中,dataframe是输入数据帧。

例子:

# create dataframe
data = data.frame(names=c("manoj", "bobby", "sravan", "deepu", NA, NA),
                  id=c(1, 2, 3, NA, NA, NA), 
                  subjects=c("java", "python", NA, NA, "java", "python"))
  
  
# remove NA's in entire dataframe
print(na.omit(data))

输出:

  names id subjects
1 manoj  1     java
2 bobby  2   python

方法2:使用complete.cases()函数删除有一些NA的行

在这里,这个函数将删除数据框架中的NAs。

语法:

dataframe[complete.cases(dataframe), ]

例子 :

# create dataframe
data = data.frame(names=c("manoj", "bobby", "sravan", "deepu", NA, NA),
                  id=c(1, 2, 3, NA, NA, NA), 
                  subjects=c("java", "python", NA, NA, "java", "python"))
  
  
# remove NA's in entire dataframe
print(data[complete.cases(data), ])

输出:

  names id subjects
1 manoj  1     java
2 bobby  2   python

方法3:使用rowSums()和is.na()函数删除有一些NA的行

在这里,我们将检查行的总和是否为0,然后我们将考虑NA,然后我们将删除这些行。

语法:

data[rowSums(is.na(data)) == 0, ]

其中,data是输入数据帧

例子:

# create dataframe
data = data.frame(names=c("manoj", "bobby", "sravan", "deepu", NA, NA),
                  id=c(1, 2, 3, NA, NA, NA),
                  subjects=c("java", "python", NA, NA, "java", "python"))
  
# remove NA's in entire dataframe
print(data[rowSums(is.na(data)) == 0, ])

输出:

  names id subjects
1 manoj  1     java
2 bobby  2   python

方法4:使用tidyr包的drop_na()函数删除带有NA的行

在这里,我们将使用drop_na()函数来删除带有NA的行,在此之前,我们必须加载tidyr库。

语法:

data %>% drop_na() 

其中,data是输入数据帧

例子:

# load the dplyr package
library("tidyr")
  
# create dataframe
data = data.frame(names=c("manoj", "bobby", "sravan", "deepu", NA, NA),
                  id=c(1, 2, 3, NA, NA, NA),
                  subjects=c("java", "python", NA, NA, "java", "python"))
  
  
# remove NA's in entire dataframe
print(data % > % drop_na())

输出:

  names id subjects
1 manoj  1     java
2 bobby  2   python

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程