0
votes

Dans R, comment sélectionner / sous-ensemble sites avec des valeurs supérieures à une valeur, mais gardez ensuite tous les sites contenant des valeurs inférieures à la valeur sélectionnée?

J'ai les données suivantes (laissez-moi savoir si le lien ne fonctionne pas; c'est mon premier téléchargement à Github):

https://github.com/scottr2012/test_r_data/blob/Test_R_Data/blob/Master/2017_annual_avreages_all.csv p>

J'ai des données que a des valeurs pour l'ANC. Je dois sélectionner où se trouve l'un des sites d'ANC> 150, mais gardez toutes les années de ce site, même si l'ANC est inférieur à 150. Le code ci-dessous supprime certaines des valeurs (et des années) inférieures à 150. J'ai besoin de tous les sites. où l'une des années a atteint l'ANC supérieur à 150. Ce code semble actuellement faire une liste de sites uniques (où l'ANC> 150 à tout moment), mais n'apporte pas sur le reste des données. P>

vtsss <- subset(mydata, PROGRAM == 'VTSSS' & ANC >= 150, 
select=c(PROGRAM, SITE, YEAR, ANC))


1 commentaires

S'il vous plaît montrer un petit exemple reproductible


3 Réponses :


1
votes

Peut-être nous avons besoin d'un group_by filtre xxx


0 commentaires

3
votes

Je pense que cela devrait fonctionner si vous remplacez votre dernière ligne de code avec

vtsss2 <- mydata[ mydata$SITE %in% unique_vtsss, ] 


0 commentaires

2
votes

J'ai créé un petit exemple de données qui ressemble à votre CSV et je pense que le code suivant fait ce que vous demandez: xxx


3 commentaires

J'ai sauté une table avec des valeurs de site uniques, car je ne pense pas que ce soit vraiment nécessaire.


en utilisant unique () sera plus efficace - peut-être peu importe que si le jeu de données est grand


@Benbolker Oui En effet, c'est pourquoi j'ai ajouté le commentaire. Je ne pouvais pas comprendre immédiatement comment créer un fichier de données unique et je voulais aider dès que possible. J'ai maintenant ajouté une ligne qui fait une table VTSSSS2 avec uniquement des valeurs uniques.