IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Créer un vecteur en fonction d'un autre vecteur à partir d'une condition


Sujet :

R

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 13
    Points : 13
    Points
    13
    Par défaut Créer un vecteur en fonction d'un autre vecteur à partir d'une condition
    Bonsoir à tous , j'ai un fichier de 200 milles lignes que j'importe sur R.

    Dans ce fichier il y a une colonne PERIODICITE contenant ( Mensuel, Semestriel , Annuel )

    Je veux créer un programme qui compile vite et qui crée une colonne q

    q affiche 1 si Annuel , 2 si semestriel et 12 pour mensuel
    ci dessous mon code qui m'affiche une erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    q=rep(0,length(PERIODICITE))
    for(t in 1:length(PERIODICITE)){
      if (PERIODICITE[t] == "A"){q[t]=1} 
      else if (PERIODICITE[t] == "S") {q[t]=2}
      else {q[t] = 12}
    }
    Voici l'erreur qui s'affiche


    Error in if (PERIODICITE_REMBOURSEMENT_PRET[t] == "A") { :
    valeur manquante là où TRUE / FALSE est requis


    s'il vous plait ,je voudrais un coup de main de votre part chers membres

  2. #2
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut case of
    Bonjour,

    Les opérations sur les observations s'effectuent en parallèle, pas de raison de faire de boucle ici. De plus il est préférable d'utiliser une fonction du type case of :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    df <- data.frame(PERIODICITE=c("A","S","M"))
    Avec le package dplyr :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    df$q1 <- dplyr::case_when(
      df$PERIODICITE == "A" ~ 1,
      df$PERIODICITE == "S" ~ 2,
      df$PERIODICITE == "M" ~ 12
      )
    Avec le package memisc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    df$q2 <- memisc::cases(
      df$PERIODICITE == "A" -> 1,
      df$PERIODICITE == "S" -> 2,
      df$PERIODICITE == "M" -> 12
      )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      PERIODICITE q1 q2
    1           A  1  1
    2           S  2  2
    3           M 12 12
    Cordialement,

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 13
    Points : 13
    Points
    13
    Par défaut
    @mgdondon , grand merci à vous .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/11/2015, 18h20
  2. Créer un champ en fonction d'un autre d'une autre table
    Par nenette69 dans le forum Modélisation
    Réponses: 9
    Dernier message: 21/02/2013, 15h28
  3. Extraire les vecteurs à partir d'une matrice
    Par samia_6 dans le forum MATLAB
    Réponses: 1
    Dernier message: 15/10/2007, 23h06
  4. creer une autre table à partir d'une requete
    Par papou34 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 15/02/2007, 22h42
  5. [VB6]Creer un autre TextBox à partir d'une Textbox Existante
    Par bb62 dans le forum VB 6 et antérieur
    Réponses: 24
    Dernier message: 18/01/2006, 08h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo