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 :

appliquer une fonction sur toute les colones de mon data.frame


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    ingénierie des systèmes d'information en santé
    Inscrit en
    Décembre 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Guinée

    Informations professionnelles :
    Activité : ingénierie des systèmes d'information en santé

    Informations forums :
    Inscription : Décembre 2017
    Messages : 2
    Par défaut appliquer une fonction sur toute les colones de mon data.frame
    La fonction suivante echelle00 permet de mettre à l’echelle [0,1] les valeurs d’un vecteur
    numeric.
    je voudrais Proposer une fonction myfunc_ech qui permette d’appliquer echelle00 à toutes les colonnes d’un
    data.frame.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    echelle00 <- function(x) {
    e_Ch <- range(x, na.rm = TRUE)
    (x - e_Ch[1]) / (e_Ch[2] - e_Ch[1])
    }
    j'applique la fonction myfunc_ech <- apply(df, 2, echelle00)mais j'obtiens ce message d'erreur:
    Error in apply(df, 2, echelle00) : dim(X) doit avoir un longueur positive

  2. #2
    Membre émérite
    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
    Par défaut
    La fonction apply s'applique à un objet de type array et non à un data.frame. Pour un data.frame, qui est un type particulier de list, il faut utiliser une fonction de la famille lapply.

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    ingénierie des systèmes d'information en santé
    Inscrit en
    Décembre 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Guinée

    Informations professionnelles :
    Activité : ingénierie des systèmes d'information en santé

    Informations forums :
    Inscription : Décembre 2017
    Messages : 2
    Par défaut
    bonjour et merci pour la réaction.
    avec lapply, la fonction se compile bien.
    mais quand j'applique cette fonction à une liste j'obtiens ce message d'erreur!!!
    Error in Summary.factor(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, : ‘range’ not meaningful for factors

  4. #4
    Membre émérite
    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
    Par défaut
    La colonne en question contient une variable de type factor (facteur) non ordonné, donc la notion de 'range' n'a pas de sens pour ce type de variable. Elle l'aurait pour un facteur ordonné mais la seconde instruction qui est une mise à l'échelle ne serait pas applicable pour des facteurs ordonnées puisque ce sont alors des variables qualitatives ordinales et non des variables quantitatives.

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/05/2018, 11h26
  2. Appliquer une fonction sur les lignes d'un fichier
    Par sconrad dans le forum Langage
    Réponses: 2
    Dernier message: 05/07/2012, 15h26
  3. [RegEx] Appliquer un urldecode sur toute les url d'une page
    Par Bruno.C dans le forum Langage
    Réponses: 8
    Dernier message: 10/12/2008, 17h24
  4. [MySQL] Appliquer une fonction sur un champ lors d'une requête
    Par Jérémy197 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/08/2006, 13h29
  5. Peut-on appliquer une fonction sur un champs ajouté?
    Par tinwul dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 31/05/2006, 17h02

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