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 :

Condition globale sur vecteur


Sujet :

R

  1. #1
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2013
    Messages : 15
    Points : 21
    Points
    21
    Par défaut Condition globale sur vecteur
    Bonjour!

    Je cherche à faire une opération de comparaison sur un vecteur: j'ai un vecteur de valeurs numériques que je veux passer en 2^. Cependant si au cours de la transformation une valeur dépasse le seuil de 65000 je souhaiterai qu'aucune entrée du vecteur ne passe en 2^.

    pour l'instant je suis sur le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    final<-ifelse((2^vec>65000)vec,2^vec)
    Dans le principe ça fonctionne puisque si par exemple 2^vec[1,1] est supérieur à 65000 alors je garde la valeur initiale et si 2^vec n'est pas supérieur à 65000 la transformation se fait. Mais ceci vaut pour chaque entrée indépendamment des autres.
    Voici un exemple de vecteur que j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    > vec
        32.82    576.47     36.45     78.93      8.77     63.28    176.86      1.88    291.97     35.59
    et le résultat après la ligne de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    > final
     32.820000 576.470000  36.450000  78.930000 436.549065  63.280000 176.860000  3.680751 291.970000  35.590000
    En l'occurence avec cet exemple puisque certaines valeurs dépassent 65000 lorsqu'elles sont passées en 2^ je voudrais que final=vec

    Si quelqu'un a une idée c'est super!

    Merci d'avance!

  2. #2
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2013
    Messages : 75
    Points : 191
    Points
    191
    Par défaut
    Bonjour,
    pourquoi compliquer les choses, une simple structure 'if() else' est suffisante pour cela.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2013
    Messages : 15
    Points : 21
    Points
    21
    Par défaut
    Concernant la structure "if() else" c'est déjà en gros ce que je fais en une ligne.

    En posant la question ailleurs il m'a été conseillé d'utiliser "any" et effectivement j'obtiens ce que je veux:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    val_is_big=function(vec,threshold){
    if(any(2^vec>threshold)){
       return(vec)
    }else{
       return(2^vec)
    }
     
    Application
     
    final<-val_is_big(vec,65000)
    > final
        32.82    576.47     36.45     78.93      8.77     63.28    176.86      1.88   291.97     35.59
    Pour traiter mon problème il manquait une condition particulière sur le if else

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

Discussions similaires

  1. [E-03] Erreur sur formule - condition sur vecteur
    Par P4board dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 31/01/2009, 01h24
  2. Réponses: 3
    Dernier message: 16/02/2006, 16h58
  3. [VB.NET] Var globales sur plusieurs projets d'une même solut
    Par boulete dans le forum Windows Forms
    Réponses: 8
    Dernier message: 16/02/2006, 14h04
  4. Réponses: 9
    Dernier message: 21/11/2005, 18h51
  5. Condition IF sur plusieurs valeurs
    Par davelop dans le forum ASP
    Réponses: 5
    Dernier message: 10/06/2005, 11h10

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