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 :

Application de la fonction au vecteur


Sujet :

R

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Actuaire
    Inscrit en
    Janvier 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Actuaire

    Informations forums :
    Inscription : Janvier 2018
    Messages : 6
    Points : 7
    Points
    7
    Par défaut Application de la fonction au vecteur
    J'ai construit la fonction suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DATE=function(r,s,t){if(r %in% Statut & s<=DATE_CLOTURE) {max(s,DATE_OUVERTURE)}else{min(max(DATE_OUVERTURE,t),DATE_CLOTURE)}}

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Statut=c("Resi","Dcs","Rac","Ec","Rad","Ren")
    DATE_CLOTURE="31/12/2017"
    DATE_OUVERTURE="30/06/2008"
    Et je voudrais calculer DATE(bdd$STATUT_CONTRAT,bdd$DATE_STAtut[i],bdd$DT_FIN_C[i]) pour toutes les lignes sans utiliser la boucle for

    J'ai essayé ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DATE(bdd$STATUT_CONTRAT,bdd$DATE_STAtut,bdd$DT_FIN_C)
    Le message d'erreur suivant s'affiche :
    Warning message:
    In if (r %in% Statut & s <= DATE_CLOTURE) { :
    the condition has length > 1 and only the first element will be used
    Merci de m'aider pour ceux qui pensent avoir une idée favorable.

    D'avance je vous remercie

  2. #2
    Membre éclairé
    Homme Profil pro
    Chercheur
    Inscrit en
    Décembre 2015
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2015
    Messages : 327
    Points : 793
    Points
    793
    Par défaut
    & est un opérateur logique applicable aux vecteurs logiques. Il rend un vecteur logique de la longueur des vecteurs. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    set.seed( 1)
    x <- rnorm( 30)
    y <- rnorm( 30)
    x > 0 & y < 0
    && est le ET logique entre deux conditions et renvoie un logique de longueur 1.

    Ta première erreur est donc d'avoir utilisé le & à la place du &&. Ensuite r %in% Statut renvoie un vecteur donc tu testes la conjonction de deux vecteurs de conditions de longueurs supérieures à 1 alors que if nécessite une seule valeur. Si je comprends bien ton problème, ce que tu cherches est de test ligne à ligne. Si c'est le cas, essaye soit par une boucle, soit en utilisant la fonction ifelse.

Discussions similaires

  1. [XL-2010] Application.countif avec fonction Right
    Par straps dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/05/2013, 14h58
  2. fonction renvoie vecteur ou null
    Par hbenji dans le forum C++
    Réponses: 3
    Dernier message: 04/03/2013, 09h52
  3. Application de la Fonction recherchev
    Par nokoss dans le forum Excel
    Réponses: 6
    Dernier message: 15/06/2011, 12h00
  4. Web Application, executer une fonction
    Par Zikas-r dans le forum Débuter
    Réponses: 2
    Dernier message: 10/06/2010, 03h54
  5. application de la fonction return
    Par ENSAM-ALAMI dans le forum MATLAB
    Réponses: 4
    Dernier message: 09/06/2008, 09h45

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