Quelles sont les différentes manières pour le nettoyage d'une de la R de l'environnement à partir d'objets?
Je sais que je peux utiliser la commande ls() et rm() permet de visualiser et de supprimer des objets qui existent dans mon environnement.
Toutefois, lorsque vous traitez avec des "vieux" .RData fichier, il faut parfois choisir un environnement d'une part de trouver de quoi garder et quoi laisser.
Ce que je voudrais faire, c'est d'avoir une interface graphique, comme l'interface pour me permettre de voir les objets, de les trier (par exemple, par la taille), et de supprimer ceux que je n'ai pas besoin (par exemple, par une case de l'interface). Depuis que j'ai imaginer un tel système n'est actuellement pas implémenté dans R, ce que les moyens existent? Que voulez-vous utiliser pour le nettoyage des vieux .RData fichiers?
Merci,
Tal
OriginalL'auteur Tal Galili | 2010-05-26
Vous devez vous connecter pour publier un commentaire.
Vous voudrez peut-être vérifier la RGtk2 paquet.
Vous pouvez très facilement créer une interface avec la Clairière de l'Interface de configuration, puis fixez quel que soit R commandes que vous souhaitez.
Si vous voulez un bon point de départ où à "voler" des idées sur la façon d'utiliser
RGtk2
, installez lerattle
et d'exécuterrattle();
. Ensuite, regardez le code source et commencer à faire votre propre interface 🙂Je peut avoir un aller à elle et voir si je peux sortir avec quelque chose de simple.
EDIT: c'est un moyen rapide et sale morceau de code que vous pouvez jouer avec. Le gros problème c'est que, pour quelque raison que ce soit le
rm
instruction n'a pas été exécuté, mais je ne sais pas pourquoi... je sais que c'est le centre d'instruction, mais au moins, l'interface fonctionne! 😀TODO:
rm
travailremObjEnv
de l'environnement. Il ne devrait pas être répertorié dans la variable courante et il doit être retiré lorsque la fenêtre est ferméeProfiter de
Galili: j'ai mis à jour ma réponse avec un morceau de code. C'est tout pour vous de jouer avec! 🙂
Salut Nico - merveilleux, je vous remercie! Actuellement, je ne peux pas jouer avec elle, mais depuis que je vais avoir des problème avec Gtk2, mais lors de la fixation, il je vais donner votre code a exécuter. Mieux, Tal
Nico, que pensez-vous de l'utilisateur___ idée vers le bas le fil? de l'aide gwidgets au lieu de RGtk2 ?
Galili: je n'ai jamais utilisé gwidgets, je suppose que c'est une option, je l'utilise généralement RGtk2 parce qu'il intègre joliment dans l'environnement Gnome, mais c'est absolument une question de préférence personnelle. Vous pouvez utiliser Tcl/Tk si vous le souhaitez
OriginalL'auteur nico
Je n'ai jamais créer
.RData
fichiers. Si vous pratiquez reproductible de la recherche (et vous devriez!) vous devriez être capable de source dans la R de fichiers pour aller de fichiers d'entrée pour toutes les sorties.Lorsque vous avez opérations qui prennent du temps il est logique de les mettre en cache. Si souvent utiliser une construction comme:
Cela vous permet de travailler rapidement à partir de fichiers mis en cache, et quand vous avez besoin de recalculer à partir de zéro, vous pouvez simplement supprimer tous les rdata fichiers dans votre répertoire de travail.
load
.Salut Hadley - En théorie, je prendrais de votre position, dans la pratique, cela ne fonctionne pas toujours. Par exemple, j'ai des projets de où obtenir les données pertinentes.cadre, j'aurais besoin de plusieurs minutes de R de traitement. Dans ce cas, je préfère faire ce que Marek a écrit.
La mise en cache est complètement orthogonal à cette pratique. J'ai ajouté une remarque à faire que de plus en plus clair.
OriginalL'auteur hadley
Solution de base est de charger vos données, de supprimer ce que vous ne voulez pas et de les enregistrer en tant que nouveau, la qualité des données.
Une autre façon de gérer cette situation est de contrôler chargé RData en le chargeant d'environnement
Maintenant, vous pouvez voir ce qui est à l'intérieur de
Alors vous avez plusieurs posibilités:
save(A, B, file="clean.RData", envir=sandbox)
rm(x, z, u, envir=sandbox)
sandbox
J'ai l'habitude de faire la même chose pour la troisième option. Charger mes données, faire quelques vérifications, de transformation, de copier les données finales mondiales de l'espace de travail et de supprimer les environnements.
Vous avez toujours la possibilité de mettre en œuvre ce que vous voulez. Donc
vars <- load("some_old.RData")
vars_size <- sapply(vars, function(x) object.size(get(x)))
vars <- vars[order(vars_size, decreasing=TRUE)]
vars_size <- vars_size [order(vars_size, decreasing=TRUE)]
vars_with_size <- paste(vars,vars_size)
vars_to_save <- select.list(vars_with_size, multiple=TRUE)
rm(vars[!vars_with_size%in%vars_to_save])
À la belle forme de la taille de l'objet-je utiliser une solution basée sur
getAnywhere(print.object_size)
Puis en 4. on peut utiliser
paste(vars, pretty_size(vars_size))
OriginalL'auteur Marek
Une fois que vous avez compris ce que vous souhaitez conserver, vous pouvez utiliser la fonction keep - de package gdata fait ce que son nom suggère.
Voir l'aide(garder) pour plus de détails sur l'-tout - et -bien sûr - options.
Cette fonction est si utile que je suis surpris qu'il ne fait pas partie de la R elle-même.
OriginalL'auteur PatrickT
L'OS X gui n'ont une telle chose, il est appelé l'explorateur d'espace de travail. Ce qui est très pratique.
J'ai également souhaité une interface qui montre la session de dépendance entre les objets, c'est à dire si je commence à partir d'un plot() et travailler à rebours pour trouver tous les objets qui ont été utilisés pour créer. Cela nécessiterait l'analyse de l'histoire.
Vous pouvez parcourir l'espace de travail en vertu de toute plate-forme à l'aide de
?browseEnv
.ls.str
fournit une console d'alternative.Richie - je vous remercie, c'est très cool (je savais ls.str, mais pas browseEnv) !
OriginalL'auteur Ken Williams
Il n'a pas de cases à cocher pour supprimer, plutôt que vous sélectionnez le fichier(s), puis cliquez sur supprimer. Cependant, la solution ci-dessous est assez facile à mettre en œuvre:
Salut à nouveau, j'ai essayé votre code avec des options(guiToolkit="tcltk"), elle a partiellement fonctionné. Je peux voir la table des fichiers (en fait, je voulais que le ls() des objets, mais c'est très bien) - Mais je ne vois pas le bouton supprimer (il n'a pas assez d'espace). Des idées ?
Ouais, c'est quelque bug je n'ai pas compris comment le fer avec la table widget. Un couple rapide hacks sont: vous pouvez redimensionner la fenêtre; déplacez le bouton supprimer au-dessus de la gtable exemple, ou d'utiliser une mise en page horizontale (saut horizontal=FALSE dans ggroup) --Jean
OriginalL'auteur jverzani
Les pauvres gars de réponse pourrait être :
OriginalL'auteur Hugues
Pour nettoyer l'environnement complet, vous pouvez essayer:
OriginalL'auteur Cro-Magnon