filtrage à l'aide de plusieurs conditions sur plusieurs colonnes à l'aide de dplyr

J'ai cherché sur DONC essayer de trouver une solution en vain. Si elle est ici. J'ai un bloc de données avec de nombreuses colonnes, dont certaines sont numériques et ne doit pas être négative. Je veux nettoyer les données depuis quelques valeurs dans ces numérique colonnes sont négatifs. Ce que je peux faire maintenant est d'extraire les noms de colonnes de ces colonnes avec une expression régulière. Mais je ne suis pas sûr de la façon de mettre en œuvre le filtrage de lignes sur la base de ces colonnes.

Pour donner un exemple, nous allons dire:

library(dplyr)
df <- read.table(text = 
  "id   sth1    tg1_num   sth2    tg2_num    others   
  1     dave    2         ca      35         new
  2     tom     5         tn      -3         old
  3     jane    -3        al       0         new
  4     leroy   0         az      25         old
  5     jerry   4         mi      55        old", header=TRUE)
pattern <- "_num$"
ind <- grep(pattern, colnames(df))
target_columns <- colnames(df)[ind]
df <- df %>% filter(target_columns >= 0) # it's is wrong, but it's what I want to do

Ce que je veux sortir de ce filtrage est la suivante:

id   sth1 tg1_num   sth2 tg2_num others
1    dave       2     ca      35    new
4   leroy       0     az      25    old
5   jerry       4     mi      55    old

où les lignes ne. 2 et 3 ne sont pas filtrées, parce que au moins une colonne en tg1_num et tg2_num pour ces lignes contiennent des nombres négatifs.

df %>%select(matches("_num$"))?
Qu'est-ce que le résultat désiré? Voulez-vous le dos ou tout simplement celles correspondant au modèle? Voulez-vous les deux colonnes à être plus grande ou égale à zéro, ou un seul suffit? Merci de nous montrer le produit final
c'est une façon de sélectionner les colonnes cibles. Mais ne résout pas mon problème

OriginalL'auteur breezymri | 2015-08-19