0
votes

Comment puis-je généraliser beaucoup de variable catégorique dans R?

J'ai le DF suivant dans R: XXX

Il y a plus de 50 pays différents, je souhaite résumer ces informations comme suit. Si la personne provient des 10 principaux pays les plus populaires (les pays populaires sont les pays avec la plupart des archives), Country_Popular sera 1, sinon 0. EX États-Unis et UK se trouvaient dans le top 10 fréquents dans ce DF et JPN et NED n'étaient pas: xxx


3 commentaires

Top10 Les pays les plus populaires de votre table? Ou par une autre définition


Je crois que votre question n'est pas claire. Qu'est-ce que "généraliser"? Comment / où sont définis les pays populaires? S'il vous plaît soyez un peu plus clair.


J'ai édité la question. Oui, en supposant que nous et le Royaume-Uni figurent parmi les 10 premiers pays le plus arrivés, la colonne est 1


3 Réponses :


0
votes

En supposant que «populaire» apparaisse le plus dans la base de données, une solution consiste à créer une colonne provisoire avec le rang:

Dites votre data.frame s'appelle df : xxx

alors vous pouvez supprimer la colonne de classement.

EDIT:

Pas besoin de Sommaire < / code> puis fusionner , vous pouvez simplement muté à la place.


1 commentaires

Chargez le Plyr et dplyr Bibliothèques d'abord



2
votes

dans la base R, nous pouvons utiliser table pour compter la survenue de chaque pays pays , Trier Sélectionnez les 10 meilleurs pays en utilisant Queue et attribuer des valeurs 1/0 en fonction de leur présence / de leur absence. xxx

Le + avance convertit les valeurs logiques true / false à 1/0 respectivement.


0 commentaires

1
votes

Si vous souhaitez le faire en utilisant dplyr code>, il s'agit d'une autre option qui vous permet de prendre soin de pays qui pourraient être liés dans leur classement:

library(dplyr)

# Get the top 10 countries (count allows you to untie countries which might have the same position, so an addition to the answer).
top_10 <-
  df %>%
  count(COUNTRY, sort = TRUE) %>%
  slice(1:10) %>%
  pull(COUNTRY)


# If the country is in the top 10, assign a 1 otherwise a 0.
df %>%
  mutate(COUNTRY_POPULAR = if_else(COUNTRY %in% top_10, 1, 0))


0 commentaires