Como excluir linhas de um quadro de dados que contém n * NA

Eu tenho vários conjuntos de dados grandes com ~ 10 colunas e ~ 200000 linhas. Nem todas as colunas contêm valores para cada linha, embora pelo menos uma coluna deva conter um valor para a linha estar presente, eu gostaria de definir um limite para quantasNAs são permitidos em uma linha.

Meu Dataframe é mais ou menos assim:

 ID q  r  s  t  u  v  w  x  y  z
 A  1  5  NA 3  8  9  NA 8  6  4
 B  5  NA 4  6  1  9  7  4  9  3 
 C  NA 9  4  NA 4  8  4  NA 5  NA
 D  2  2  6  8  4  NA 3  7  1  32 

E eu gostaria de poder excluir as linhas que contêm mais de 2 células contendo NA para obter

ID q  r  s  t  u  v  w  x  y  z
 A 1  5  NA 3  8  9  NA 8  6  4
 B 5  NA 4  6  1  9  7  4  9  3 
 D 2  2  6  8  4  NA 3  7  1  32 

complete.cases remove todas as linhas que contêm qualquerNAe sei que é possível excluir linhas que contêmNA em determinadas colunas, mas existe uma maneira de modificá-lo para que não seja específico sobre quais colunas contêmNA, mas quantos do total fazem?

Como alternativa, esse quadro de dados é gerado mesclando vários quadros de dados usando

    file1<-read.delim("~/file1.txt")
    file2<-read.delim(file=args[1])

    file1<-merge(file1,file2,by="chr.pos",all=TRUE)

Talvez a função de mesclagem possa ser alterada?

obrigado

questionAnswers(4)

yourAnswerToTheQuestion