suite de nombre à partir d'un factor

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Delalande Lucas
Messages : 40
Enregistré le : 14 Déc 2017, 08:48

suite de nombre à partir d'un factor

Messagepar Delalande Lucas » 14 Déc 2017, 10:35

Bonjour,

Petite question de manipulation de donnée :

Dans un dataframe j'ai un champ id en class factor avec 6 nombres de 220 à 230 répétés mais à intervalle non regulier, (ex : x$id<-c(220, 220, 220, 221,221 223, 224,224,224, 227, 227, 230, 230)

je voudrais simplement remplacer ces valeurs par des chiffres de 1 à 6 pour obtenir : x$id<-c(1,1,1,2,2,3,4,4,4,5,5,6,6)

une idée ? :)

Merci pour votre aide !

Florent Aubry
Messages : 324
Enregistré le : 25 Juin 2010, 10:21

Re: suite de nombre à partir d'un factor

Messagepar Florent Aubry » 14 Déc 2017, 11:03

Le codage interne d'un facteur (cf. fonction mode) est numérique. Il suffit alors d'écrire :

Code : Tout sélectionner

x$id <- as.numeric( x$id)

pour remplacer les niveaux par leur position (cf. fonction levels). Pour modifier cet ordre, il y a plusieurs solutions comme l'utilisation de la fonction relevel ou l'ordonnancement explicite lors de la construction (cf. fonction factor).

Delalande Lucas
Messages : 40
Enregistré le : 14 Déc 2017, 08:48

Re: suite de nombre à partir d'un factor

Messagepar Delalande Lucas » 14 Déc 2017, 11:54

tout sipmplement :) merci beaucoup !

Delalande Lucas
Messages : 40
Enregistré le : 14 Déc 2017, 08:48

regrouper des facteur avec un identifiant de classe dans r

Messagepar Delalande Lucas » 20 Déc 2017, 14:31

Un peu plus complexe peut être.. :

J'ai maintenant un champ dans dataframe avec une suite de chiffre (factor) : c(1,1,1,2,2,2,3,3,4,4,4,4), j'aimerais "regrouper" en classe de 2 ces chiffres : c'est à dire que les chiffres 1 et 2 appartiendrait a la classe 1 et les 3 et 4 a la classe 2, et du coup avoir un nouveau champ avec c(1,1,1,1,1,1,2,2,2,2,2,2,2)

je sais pas si c'est compréhensible ? (en sachant que ma suite de chiffre est bien plus grande)

Merci !
Lucas

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: suite de nombre à partir d'un factor

Messagepar Pierre-Yves Berrard » 20 Déc 2017, 14:43

Bonjour,
Pour le coup, c'est juste des math :

Code : Tout sélectionner

ceiling(x / 2)
PY

Delalande Lucas
Messages : 40
Enregistré le : 14 Déc 2017, 08:48

Re: suite de nombre à partir d'un factor

Messagepar Delalande Lucas » 20 Déc 2017, 14:54

exact.. et ceilling que je ne connaissais pas parfait encore merci !

Delalande Lucas
Messages : 40
Enregistré le : 14 Déc 2017, 08:48

Re: suite de nombre à partir d'un factor

Messagepar Delalande Lucas » 20 Déc 2017, 15:19

enfaite ça marche, mais ça ne résout pas mon problème :/

imaginons maintenant que j'ai un champ : c(0,0,0,150,0,0,0,300,0,0,200,...)

Je voudrais me servir de ces chiffres >100 comme repère pour faire un nouveau champ qui donnerait :
c(1,1,1,1,2,2,2,2,3,3,3,...)

(avec ce chiffre>100, repere, inclut dans la "classe")

Une idée ?
merci encore

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: suite de nombre à partir d'un factor

Messagepar Pierre-Yves Berrard » 20 Déc 2017, 16:02

Une idée à tester :

Code : Tout sélectionner

x <- c(0, 0, 0, 150, 0, 0, 0, 300, 0, 0, 200)

fins <- which(x > 100)
rep(
  seq_along(fins),
  diff(c(0, fins))
)
PY


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité