Je donne les résultats suivants data.frameComment appliquer des conditions sur un élément de groupe particulier et trouver des permutations d'un autre groupe dans la même table?
Category Product Status
1 A qwe In
2 A rty In
3 A ewq Out
4 B dfs In
5 B sgf In
6 C mnb Out
7 C ves Out
8 C klm Out
9 C nbc Out
Mon but est de créer une colonne Drapeau par groupe de la catégorie où les niveaux sont OnlyIn, OnlyOut et BothInOut , correspondant aux valeurs du Statut Colonne.
En tant que partie I calculé compte sur In et Out par groupe en utilisant le code ci-dessous:
Data <- Data %>%
group_by(Category,Status) %>%
dplyr::mutate(InCounts = length(Status[Status == "in"]),
OutCounts = length(Status[Status == "out"]))
Et je suis le résultat ci-dessous:
Category Product Status CountIn CountOut
1 A qwe In 2 0
2 A rty In 2 0
3 A ewq Out 0 1
4 B dfs In 2 0
5 B sgf In 2 0
6 C mnb Out 0 4
7 C ves Out 0 4
8 C klm Out 0 4
9 C nbc Out 0 4
Maintenant, je ne suis pas Assurez-vous de tirer parti de ces informations pour créer le nouveau drapeau de colonne en comptant le total des entrées et des sorties par catégorie et ajoutez une valeur appropriée.
Par exemple, s'il y a deux et comme état d'une catégorie, le drapeau devrait lire « BothInOut »
Exemple de sortie:
Category Product Status CountIn CountOut Flag
1 A qwe In 2 0 BothInOut
2 A rty In 2 0 BothInOut
3 A ewq Out 0 1 BothInOut
4 B dfs In 2 0 OnlyIn
5 B sgf In 2 0 OnlyIn
6 C mnb Out 0 4 OnlyOut
7 C ves Out 0 4 OnlyOut
8 C klm Out 0 4 OnlyOut
9 C nbc Out 0 4 OnlyOut
Entrée Reproductibles pour les données
structure(list(Category = c("A", "A", "A", "B", "B", "C", "C",
"C", "C"), Product = c("qwe", "rty", "ewq", "dfs", "sgf", "mnb",
"ves", "klm", "nbc"), Status = c("In", "In", "Out", "In", "In",
"Out", "Out", "Out", "Out"), CountIn = c(2, 2, 0, 2, 2, 0, 0,
0, 0), CountOut = c(0, 0, 1, 0, 0, 4, 4, 4, 4), Flag = c("BothInOut",
"BothInOut", "BothInOut", "OnlyIn", "OnlyIn", "OnlyOut", "OnlyOut",
"OnlyOut", "OnlyOut")), .Names = c("Category", "Product", "Status",
"CountIn", "CountOut", "Flag"), row.names = c(NA, 9L), class = "data.frame")
'df%>% group_by (Catégorie)%>% mute (Flag1 = toString (unique (Status)))' – Sotos
C'est fait, alors. – sunitprasad1