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行不为空的列