R语言中如何删除含有空值的行、列

 

001、删除含有空值的行

a <- c(3, NA, 4, 7, NA, 8)
b <- c(1:2, NA, 3:5)
c <- c(NA, "a", "k", "b", "c", "d")

dat <- data.frame(a, b, c)
dat
na.omit(dat)                            ## 删除所有有空值的行
dat[complete.cases(dat),]               ## 删除所有有空值的行

 

 

002、

a <- c(3, NA, 4, 7, NA, 8)
b <- c(1:2, NA, 3:5)
c <- c(NA, "a", "k", "b", "c", "d")
dat <- data.frame(a, b, c)
dat
dat[!is.na(dat[,1]),]                   ## 提取第一列不为空的数据
dat[complete.cases(dat[,1]),]           ## 提取第一列不为空的数据

 

 

003、

a <- c(3, NA, 4, 7, NA, 8)
b <- c(1:2, NA, 3:5)
c <- c(NA, "a", "k", "b", "c", "d")
dat <- data.frame(a, b, c)
dat
dat[!(is.na(dat[,1]) | is.na(dat[,2])),]        ## 1、2列不为空的数据
dat[complete.cases(dat[,1:2]),]
dat[complete.cases(dat[,2:3]),]                 ## 2、3列不为空的数据

 

 

004、提取不含空值的列

a <- c(3, NA, 4, 7, NA, 8)
b <- c(1:6)
c <- c(NA, "a", "k", "b", "c", "d")
d <- letters[1:6]
dat <- data.frame(a, b, c, d)
dat
dat[,complete.cases(t(dat))]       ## 提取不含空值的列

 

 

005、

a <- c(3, NA, 4, 7, NA, 8)
b <- c(1:6)
c <- c(NA, "a", "k", "b", "c", "d")
d <- letters[1:6]
dat <- data.frame(a, b, c, d)
dat
dat[,complete.cases(t(dat[1,]))]            ## 提取第一行中不为空的列
dat[,complete.cases(t(dat[1:2,]))]          ## 提取1、2行不为空的列

 

posted @ 2022-06-01 11:36  小鲨鱼2018  阅读(12362)  评论(0编辑  收藏  举报