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 :

Logiciel R fonction apply


Sujet :

R

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2021
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Logiciel R fonction apply
    Bonjour à tous,
    Alors pour vous expliquer rapidement, j'ai à ma disposition un tableau data frame avec en colonnes des espèces et en lignes différents sites. De ce genre :

    Certaines lignes contiennent des 0, donc pour calculer la richesse spécifique (nombre d'espèces présentes) du site 1 par exemple, j'ai compté le nombre de colonnes qui ne contenaient pas de 0.
    cependant, je dois appliquer cette fonction à tous les sites, donc j'ai souhaité utiliser la fonction apply :

    (ma fonction richness fonctionne quand, dans la console, je l'applique à chaque site individuellement)
    Mais la fonction apply ne fonctionne pas, ca serait trop long de le faire pour les 50, sachant qu'ensuite je dois les rassembler dans un data frame également.


    Si quelqu'un pouvait m'aider et m'éclaircir à ce sujet svp... Je vous remercie!
    Images attachées Images attachées    

  2. #2
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2021
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Sinon, l'idéal serait que je sache affecter plusieurs valeurs à x dans ma fonction, de manière successive, pour obtenir les 50 résultats d'un coup, sans devoir retaper la fonction avec le x correct dans la console... Peut être avec un vecteur ? J'ai essayé mais je n'y arrive pas de cette manière, je débute avec le logiciel R

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2021
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Pourquoi mon code n'est pas reproductible pour chaque ligne ?

    BCI[1,,] pour sélectionner seulement la première ligne de mon tableau, qui correspond au site 1 ? Ce n'est pas comme ça ?

    Merci pour votre réponse

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2021
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Ah non, ok je vois, une seule virgule après le 1 suffit Merci

  5. #5
    Membre du Club
    Homme Profil pro
    Formateur et consultant R
    Inscrit en
    Juin 2020
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formateur et consultant R
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2020
    Messages : 36
    Points : 69
    Points
    69
    Par défaut
    Bonjour,
    Sans code reproductible, difficile de dire, mais j'ai l'impression que ce code pourrait répondre. On fait la somme des valeurs de chaque qui sont supérieures à zéro.
    Le MARGIN=1, veut dire qu'on fait chaque ligne séparément. Ensuite, dans la fonction, "x" correspond à un vecteur qui contient toutes les les valeurs d'une ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    apply(BCI, 1, function(x) {sum(x > 0)})
    Pour faire un code reproductible, vous pouvez regarder ce tuto

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2021
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Super ça fonctionne avec ce code-ci ! Merci beaucoup
    Ça parait vraiment simple, mais en le lisant, je le comprends comme si ce code allait faire "la somme des x>0" et non pas comme "l'effectif total de x>0"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    apply(BCI, 1, function(x) {sum(x > 0)})

  7. #7
    Membre du Club
    Homme Profil pro
    Formateur et consultant R
    Inscrit en
    Juin 2020
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formateur et consultant R
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2020
    Messages : 36
    Points : 69
    Points
    69
    Par défaut
    Décomposez le code pour comprendre ce qu'il se passe vraiment:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    # Je crée un vecteur
    vec <- c(1, 2, 0, 0, 4)
    # Je teste ce qui est supérieur à zéro, la réponse est vrai ou false
    (vec > 0)
    # Je fais la somme des vrais
    sum(vec>0)
    # Je fais la somme des valeurs de vec, si elles sont supérieures à zéro
    sum(vec[vec>0])
    C'est pour ça que ça marche.
    Vous souhaitez comprendre les bases de la programmation avec R, en français ? c'est par ici.

  8. #8
    Membre du Club
    Homme Profil pro
    Formateur et consultant R
    Inscrit en
    Juin 2020
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formateur et consultant R
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2020
    Messages : 36
    Points : 69
    Points
    69
    Par défaut
    Je vous conseille ce tuto en français. C'est rapide, vous comprendrez mieux.
    Vous souhaitez comprendre les bases de la programmation avec R, en français ? c'est par ici.

  9. #9
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2021
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Je comprends mieux le déroulé pour parvenir à ce code, merci beaucoup pour votre aide ! Je vais appliquer cette méthode avec les autres codes qui me posent problème pour la suite

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

Discussions similaires

  1. Application de la fonction apply
    Par effossou dans le forum R
    Réponses: 2
    Dernier message: 23/07/2018, 19h33
  2. Réponses: 7
    Dernier message: 05/05/2017, 17h41
  3. Réponses: 17
    Dernier message: 20/11/2014, 11h42
  4. probleme fonction apply
    Par vince3001 dans le forum R
    Réponses: 2
    Dernier message: 14/01/2012, 20h16
  5. Quel logiciel pour une appli Windows ?
    Par akosomba dans le forum Windows
    Réponses: 5
    Dernier message: 29/05/2007, 17h37

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