我需要从下面的数据框中删除少于2个数字的所有行。这意味着只剩下第一行。
a<-c(1,"")
b<-c(2,"")
AB<-data.frame(a,b)
答案 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)