Próbuję napisać funkcję, która usuwa obiekt, jeśli istnieje. Powodem jest to, że chcę pozbyć się komunikatu logu Błąd: nie znaleziono obiektu "arg". Próbowałem następujące:Napisz funkcję, aby usunąć obiekt, jeśli istnieje
ifrm <- function(arg)
{
if(exists(as.character(substitute(arg)))){rm(arg)}
}
Niestety nie usunąć obiekt, jeśli istnieje
> ifrm <- function(arg)
+ {
+ if(exists(as.character(substitute(arg)))){rm(arg)}
+ }
> a <- 2
> ifrm(a)
> a
[1] 2
żadnych wskazówek co robię źle tutaj?
Najlepszy Albrecht
brzmi to jak potencjalnie niebezpieczną rzeczą. Czy chcesz dać nam nieco więcej szczegółów na temat okoliczności, w których pojawia się ten błąd? Mogą istnieć inne sposoby radzenia sobie z komunikatem o błędzie, które są bardziej odpowiednie. – Andrie
Zgadzam się z Andrie. Dostarczone odpowiedzi zrobią to, o co prosiłeś, ale najprawdopodobniej to, co powinieneś robić, jest jeszcze prostsze. Spójrz na try i trycatch. Czego próbujesz dokonać, to próba przetworzenia nieistniejących obiektów? –