0
votes

R condensation Dataframe basée sur la logique

J'ai un jeu de données qui ressemble à ce xxx

il contient des informations sur 4 sites clients et la colonne finale email détermine si le client doit être envoyé par courrier électronique Promotion ou non.

pour sites B et d , il y a une anomalie que je voudrais corriger. Leur e-mail contient les deux oui et non . J'aimerais écrire un code tel que dans le cas où il y a un no et oui dans la colonne e-mail pour le même site client, La colonne email devient toujours un oui . Éliminant ainsi le duplicata.

Le Dataframe résultant ressemblerait à ceci - xxx

i utilisé dplyr dans ma tentative, mais Cela ne me donne pas ce que je cherche xxx

toute aide sur ceci serait apprécié.


0 commentaires

5 Réponses :


2
votes

Vous pouvez le faire, mais vous devez utiliser cas_quive () code> interne muté, puis tout (e-mail == "oui") comme condition. Enfin, code> distinct () `supprime des doublons.

library(dplyr)
dframe %>%
  group_by(SiteCode,SiteName,Revenue,StrategicSite) %>%
  mutate(Email = case_when(any(Email == "Yes") ~ "Yes",
                           TRUE ~ "No")) %>%
  distinct()


1 commentaires

Pourquoi ne pas utiliser résumée () ? Il peut vous enregistrer l'utilisation de distinct () .



2
votes

Utiliser résumez au lieu de muté : xxx xxx


0 commentaires

0
votes

Voici une option de base r en utilisant unique + AVE xxx

qui donne xxx


0 commentaires

0
votes

A Solution code> r avec agrégat () code>. C'est un avantage, c'est que vous pouvez utiliser "." Code> dans la formule pour représenter toutes les colonnes sauf e-mail code>.

aggregate(Email ~ ., dframe, function(x) ifelse("Yes" %in% x, "Yes", "No"))

#   SiteCode SiteName Revenue StrategicSite Email
# 1        2        B     200            No   Yes
# 2        3        C     550            No    No
# 3        1        A     100           Yes   Yes
# 4        4        D     700           Yes   Yes


0 commentaires

0
votes

Voici une autre option xxx

Cela fournira exactement ce que vous voulez.


0 commentaires