Comment sélectionner des lignes dans un ensemble de données.cadre sans NA valeurs

J'ai un bloc de données appelé de données. Je veux créer une fonction f(données, collist). Cette fonction prend de données et une liste de colonnes de données elle-même, et retourne uniquement les lignes de données, pour lequel l'a mentionné les noms de colonne dans collist ne sont pas NA. Je sais que cela peut être fait en utilisant la boucle for, mais je veux le faire sans utiliser de boucle for.

Aussi, s'il vous plaît laissez-moi savoir si il est généralement plus efficace dans R pour éviter les boucles.

Voici un exemple:

 A   B   C   D
 1   2  NA  NA
 2  NA  NA  NA
NA   3   7   5
NA   4   2  NA
 5   6  NA  NA

Si collist contient B et C, puis une réduction de la trame de données avec le numéro de ligne 1,3,4 serait renvoyé. La raison d'être soit B ou C, ou les deux, a NA dans les lignes 2 et 5. Je veux une fonction, parce que je vais être à l'aide de cette opération un certain nombre de fois. À travers cette question, je vais apprendre quelques nouvelles R astuces, ainsi que de faire tout mon programme, plus élégant. Merci.

  • Désolé si je ne suis pas assez clair. Je veux revenir comme un bloc de données, seules les lignes, pour qui tous les colonnes de collist sont non-NA. Dans KDB/Q je peux passer de l'index, comme je pense qu'il est plus efficace de passer à des numéros d'index plutôt que de l'ensemble de données, puis en utilisant ces index, je peux facilement choisir les index à partir de données principale dans KDB/Q. vous ne savez Pas ce qui serait le plus optimal dans la R - pour envoyer des index ou pour envoyer le sous-ensemble de données. Si l'indice, comment puis-je utiliser cet indice pour extraire les lignes de données en fonction principale?
  • Merci! C'est ce que je cherchais. De ce que si laisser dire au lieu de supprimer NA, je veux supprimer Inf ou de données est inférieur à 0. Comment pourrais-je faire ce travail?
  • double possible de supprimer les lignes avec NAs dans les données.image
InformationsquelleAutor Sumit | 2013-11-08