R 使用NAs删除列表中矩阵的行
我认识到这个问题可能是重复的 我有一个矩阵列表,对于每个矩阵,我想确定第一列中是否存在NA。我想确定它的位置(行),如果存在NA,则删除该行。我想将此操作应用于列表中的所有矩阵R 使用NAs删除列表中矩阵的行,r,list,matrix,na,R,List,Matrix,Na,我认识到这个问题可能是重复的 我有一个矩阵列表,对于每个矩阵,我想确定第一列中是否存在NA。我想确定它的位置(行),如果存在NA,则删除该行。我想将此操作应用于列表中的所有矩阵 mat1 <- data.frame(matrix(nrow =2, ncol =2, data = c(NA, 0,0,1))) mat2 <- data.frame(matrix(nrow =2, ncol =5, data = c(0,0,1,2,1,NA,1,1,1,1))) mat3 <- d
mat1 <- data.frame(matrix(nrow =2, ncol =2, data = c(NA, 0,0,1)))
mat2 <- data.frame(matrix(nrow =2, ncol =5, data = c(0,0,1,2,1,NA,1,1,1,1)))
mat3 <- data.frame(matrix(nrow =3, ncol =2, data = c(NA, 0,0,1,NA,1)))
list <- list(mat1,mat2,mat3)
lapply(list, function(x) !is.na(x[,1]))
mat1如果它仅用于第一列,我们使用lappy
循环遍历列表
,然后使用。匿名函数调用,获取第一列(x[,1]
),使用(is.NA
)检查NA
),否定(!
),即非NA元素,并将基于数据集的行子集。在那上面
list2 <- lapply(list, function(x) x[!is.na(x[,1]),, drop = FALSE])
lapply(list, function(x) x[rowSums(is.na(x)) == 0,, drop = FALSE])