删除少于一定数量的非空白单元格的行

时间:2019-08-21 22:53:00

标签: r

我需要从下面的数据框中删除少于2个数字的所有行。这意味着只剩下第一行。

a<-c(1,"")
b<-c(2,"")
AB<-data.frame(a,b)

3 个答案:

答案 0 :(得分:2)

使用grepl并检查数字\\d

AB[rowSums(sapply(AB, function(x) grepl("\\d", x))) == NCOL(AB),]
#  a b
#1 1 2

答案 1 :(得分:1)

我们可以使用rowSums创建一个逻辑向量并将其行作为子集

AB[rowSums(AB != '') >1, , drop = FALSE]
#  a b
#1 1 2

答案 2 :(得分:1)

我们还可以将数据转换为数字,并选择所有列均为数字的行

AB[] <- lapply(AB, as.numeric)
AB[rowSums(!is.na(AB)) == ncol(AB), ]

#  a b
#1 1 2

数据

a<-c(1,"")
b<-c(2,"")
AB<-data.frame(a,b, stringsAsFactors = FALSE)