objet en mémoire

Questions sur les objets de R et la manipulation des données

Modérateur : Groupe des modérateurs

Sébastien Hamel
Messages : 71
Enregistré le : 11 Mai 2006, 08:00

objet en mémoire

Messagepar Sébastien Hamel » 17 Mai 2006, 10:50

Mon pb est le suivant:

J'ai écrit qq fonctions dans un fichier nommé fonctions.r
exemple: transform () est une fonction

Dans un main.r: j'execute transform() sans oublier de mettre source:/.... pour l'acces a la fonction dans fonctions.r

le pb est quand je fé copié coller de mon main.r pour mettre sur la console R, tous les objets que j'ai déclaré dans ma fonction transform() ne sont pa pri en compte dans la mémoire

a savoir si je tape ls() dans la console R, il n'affiche okun objet creer dans ma fonction transform() indiquant donc que le logiciel na pa en mémoire les objets...

why?

Pierre Bady
Messages : 405
Enregistré le : 02 Mai 2006, 07:46

Messagepar Pierre Bady » 17 Mai 2006, 11:16

bonjour,

tu peux consulter ce lien :

http://pbil.univ-lyon1.fr/R/cours/lang03.pdf

Ce document donne un bon aperçu des "Eléments principaux du langage".
Il contient les bases pour commencer à programmer sous R.
tu as notamment deux diapos sur la portée des variables dans les fonctions (pages 20-21).

@+

pierre

Sébastien Hamel
Messages : 71
Enregistré le : 11 Mai 2006, 08:00

Messagepar Sébastien Hamel » 17 Mai 2006, 12:23

Pierre Bady a écrit :bonjour,

tu peux consulter ce lien :

http://pbil.univ-lyon1.fr/R/cours/lang03.pdf

Ce document donne un bon aperçu des "Eléments principaux du langage".
Il contient les bases pour commencer à programmer sous R.
tu as notamment deux diapos sur la portée des variables dans les fonctions (pages 20-21).

@+

pierre


g bien pri connaissance du document mé jdois dire que ca ne mavance pa bcp!!

jexplique l'architecture:

mon fichier main.r fé appel aux fichier modules.r qui fé appel aux fichier fonctions.r
donc main.r --> modules.r --> fonctions.r

fonctions.r : regroupe toutes les fonctions avec arguments
modules.r : regroupe des fonctions sans arguments qui font appel a des fonctions de fonctions.r
main.r : appel les fonctions de modules.r

donc mon pb est que R ne garde aucun de mes objets en mémoire. Des lors, g tjs un message d'erreur car l'objet considéré né pa trouvé!!

Cette architecture est censé me simplifié la vie pour éviter de rentrer tout a la main un par un sur la console de R.
Remarque: lorsque j'ajoute dans toutes mes fonctions fix(objets quelconque) lorsque l'objet vient detre déclaré, alor R garde bien en mémoire l'objet quelconque é dans ce cas tou marche nickel.
Mé otrement, si je najoute pas fix(...), aucun des objets déclaré dans mes fonctions né en mémoire pi en plus R ouvre une interface a chaque fois qu'il trouve fix(...) donc pa cool!!

Pierre Bady
Messages : 405
Enregistré le : 02 Mai 2006, 07:46

Messagepar Pierre Bady » 17 Mai 2006, 13:36

rebonjour,

mon fichier main.r fé appel aux fichier modules.r qui fé appel aux fichier fonctions.r
donc main.r --> modules.r --> fonctions.r

fonctions.r : regroupe toutes les fonctions avec arguments
modules.r : regroupe des fonctions sans arguments qui font appel a des fonctions de fonctions.r
main.r : appel les fonctions de modules.r


désolé, mais je ne comprends pas vraiment
ton architecture de progra dans le contexte
d'utilisation du langage S... :"(

si les fonctions de "module.r" n'ont pas d'arguments,
il devient délicat d'assigner une valeurs aux arguments des fonctions de "fonctions.r".


tu peux peut-être regarder du coté
de la manipulation des environnements,
mais ça risque de très vite compliquer tes codes.

Code : Tout sélectionner

?new.env


ça doit peut-être pouvoir servir plus ou moins de substitut de pointeur.
(à vérifier)


@+

pierre

Matthieu Lesnoff
Messages : 120
Enregistré le : 29 Nov 2004, 12:41

Re: objet en mémoire

Messagepar Matthieu Lesnoff » 25 Mai 2006, 11:02

Sébastien Hamel a écrit :
a savoir si je tape ls() dans la console R, il n'affiche okun objet creer dans ma fonction transform() indiquant donc que le logiciel na pa en mémoire les objets...

why?


pas sur de repondre a ton pb mais peut-etre est-ce parce tu ne declares pas les resultats de tes fonctions en fin de script, par exemple en S3 :

Code : Tout sélectionner

> foo <- function(x, y){
+     X <- x + y
+     Y <- x - y
+     list(X = X, Y = Y)
+     }
> tab <- foo(2, 3)
> tab$X
[1] 5
> tab$Y
[1] -1


Avec ca le ls() devrait voir tes objets

M.


Retourner vers « Archives : Manipulation de données avec R »

Qui est en ligne

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