0
votes

Cadre de données sous-ensemble conditionnel basé sur la valeur dans plusieurs colonnes

J'ai le jeu de données suivant (exemple) xxx

qui donne: xxx

Je souhaite sous-ensemble df < / Code> Ne gardant que les brut où la valeur g56 apparaît dans la colonne code1 ou code 2 , bien que conservant le code brut IDNumber Si la valeur d'identifiant est la même valeur d'identifiant correspondant à la valeur g56 telle que: xxx

J'ai des millions d'observations et environ 30 < Code> Code Colonnes. J'espère que la question est suffisamment claire, toute suggestion sera accueillie!

acclamations


0 commentaires

4 Réponses :


2
votes

Voici un moyen de faire:

library(data.table)
setDT(df)
df[,.SD[any(code1 == 'G56' | code2 == 'G56')] ,.(idnumber)]

   idnumber reg code1 code2
1:       12  FR   F56   G56
2:       12  FR   G76   I89
3:       13  DE   G56   J83
4:       15  TZ   G76   G56
5:       17  GR   T65   G56
6:       18  ES   G79   W34
7:       18  ES   G56   T89


0 commentaires

0
votes
idnumber=c(12,12,13,14,14,15,16,17,18,18)
reg = c('FR','FR','DE','US','US','TZ','MK','GR','ES','ES')
code1=c('F56','G76','G56','T78','G78','G76','G64','T65','G79','G56')
code2=c('G56','I89','J83','S46','D78','G56','H89','G56','W34','G56')
code3=c('M56','G56','J83','S46','D78','G46','H89','J56','W33','T89')
df = data.frame(idnumber,reg,code1,code2,code3)

1 commentaires

Troisième choix était parfait! Merci @edward, mais si je devais faire le même filtrage pour ces "Numéro Idnumber" avec la valeur "G56" apparaissant au moins 2 fois (c'est le cas dans la base de données complète) dans les colonnes "Codes". Ne peut pas comprendre comment inclure une déclaration conditionnelle => 2 dans la formule



1
votes

1. Base xxx

2. dplyr xxx

sortie xxx


0 commentaires

1
votes

Une autre solution de base r xxx

tel que xxx


0 commentaires