Ecrire une fonction avec tableau en argument

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Estelle Vandenabeele
Messages : 5
Enregistré le : 04 Jan 2018, 12:53

Ecrire une fonction avec tableau en argument

Messagepar Estelle Vandenabeele » 04 Jan 2018, 15:17

Bonjour,
Pour un devoir je dois créer une fonction permettant de calculer la richesse spécifique à partir de n'importe quel jeu de données.
J'ai écrit le script en me basant sur un tableau particulier (voir ci dessous) mais je dois maintenant le passer en fonction qui marche avec d'autres tableaux.
Le problème est que je ne sais pas comment mettre le nom du tableau, sur lequel on veut appliquer la fonction, en argument.
Pouvez vous m'aider ?

Voici le début de mon script :
#Importation du jeu de données
tab<-read.table("carabe.txt", h=T, row.names=1)

#Visualiser le nombre de lignes et de colonnes de notre tableau
dim(tab)

#Création D'un objet comprenant le cumul de toute les unités d'échantillonnage
cum<-apply(tab,2,sum) # 2 désigne les colonnes.
cum #cumul des colonnes du tableau = total par espèce

Gabriel Terraz
Messages : 591
Enregistré le : 26 Sep 2011, 15:11

Re: Ecrire une fonction avec tableau en argument

Messagepar Gabriel Terraz » 04 Jan 2018, 15:48

Salut,

Tu as deux possibilités : soit passer en argument un fichier soit un dataframe. La deuxième me paraît plus souple :

Code : Tout sélectionner

mafonction <- function(dataframe){
   cum <- colSums(dataframe)
   cum
}


Ensuite :

Code : Tout sélectionner

mafonction(tab) # Tu peux mettre n'importe quel dataframe à la place de tab

Estelle Vandenabeele
Messages : 5
Enregistré le : 04 Jan 2018, 12:53

Re: Ecrire une fonction avec tableau en argument

Messagepar Estelle Vandenabeele » 04 Jan 2018, 16:46

Merci,
Ensuite il suffit donc d'appeler la fonction en faisant : richessespecifique(nomdufichier.txt) et cela fonctionnera ?
Ce que je ne comprends pas ensuite c'est comment faire écho à ces données ensuite dans mon script ?
Avant de le passer en fonction je nommais le tableau "tab" grâce à read.table mais maintenant je ne sais pas trop comment m'y prendre...

Voici le début de ma fonction :
richessespecifique<-function(dataframe)
{

AJOUTER QUELQUE CHOSE QUI NOMME MON TABLEAU EN ARGUMENT,TAB
#Visualiser le nombre de lignes et de colonnes de notre tableau
dim(tab)

#Création D'un objet comprenant le cumul de toute les unités d'échantillonnage
cum<-apply(tab,2,sum) # 2 désigne les colonnes.
cum #cumul des colonnes du tableau = total par espèce
....

Gabriel Terraz
Messages : 591
Enregistré le : 26 Sep 2011, 15:11

Re: Ecrire une fonction avec tableau en argument

Messagepar Gabriel Terraz » 04 Jan 2018, 17:06

Resalut,

La fonction que j'ai écrite permet de passer en argument un dataframe, comme je l'ai précisé. Apparemment, tu veux passer un nom de fichier en argument.

Par exemple :

Code : Tout sélectionner

richessespécifique <- function(file){
   tab <- read.table(file, h = T) ## Pense à mettre les arguments qui t'intéressent
   cat(sprintf("Ce tableau a %i lignes et %i colonnes", nrow(tab),ncol(tab)) , "\n\n") ## Tu peux faire print(dim(tab))
   cum <- colSums(tab)
   cum
}

Estelle Vandenabeele
Messages : 5
Enregistré le : 04 Jan 2018, 12:53

Re: Ecrire une fonction avec tableau en argument

Messagepar Estelle Vandenabeele » 04 Jan 2018, 17:18

Merci c'est exactement ça que je voulais !


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité