Modérateur : Groupe des modérateurs
Code : Tout sélectionner
envi <- environment()
...
rm(..., envir = envi)
Code : Tout sélectionner
rm(..., envir = environment())
Code : Tout sélectionner
ted <- function(x, pos = -1, envir = environment()) { print(envir) }
ted(2)
<environment: 0x000000001f1266e0>
Code : Tout sélectionner
.First <- function()
{
.First.sys() # pour conserver les packages dans l'ordre habituel (et charger utils)
library(survival)
OldFun <-new.env() # pour stocker les anciennes fonctions si besoin
attach(OldFun, pos=2)
assign("print.coxph.old", survival:::print.coxph, pos=2)
print.coxph <- function(x) cat("essai\n") # définition nouvelle fonction
assignInNamespace("print.coxph", print.coxph, "survival") # remplacement dans survival
}
Code : Tout sélectionner
[Sauvegarde de la session précédente restaurée]
> ls()
character(0)
> search()
[1] ".GlobalEnv" "OldFun" "package:survival"
[4] "package:stats" "package:graphics" "package:grDevices"
[7] "package:utils" "package:datasets" "package:methods"
[10] "Autoloads" "package:base"
> ls(pos=2)
[1] "print.coxph.old"
> x <- 3
> class(x) <-"coxph"
> print(x)
essai
> print.coxph.old(x)
Erreur : $ operator is invalid for atomic vectors
>
Code : Tout sélectionner
envir1=environment()
rm(print.survdiff, print.coxph,envir=envir1)
Code : Tout sélectionner
print(ls(envir=envir1))
Logez Maxime a écrit :il te suffit de mettre local = TRUE dans la fonction source à laquelle tu fais appelle dans la fonction .First et tu n'as pas besoin du rm après assignInNamespace.
Retourner vers « Questions en cours »
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité