An embedded and charset-unspecified text was scrubbed... Name: not available Url: https://stat.ethz.ch/pipermail/r-help/attachments/20040414/6f27da09/attachment.pl
attaching data.frame/list within a function
2 messages · Gardar Johannesson, John Fox
Dear Gardar, You could use with(); to modify your example slightly,
a <- "a"
b <- 5
foo <- function(x=0, input=list(a=10)) {
+ with(input, {
+ print(c(a, b, x))
+ })
+ }
foo()
[1] 10 5 0
I hope that this helps, John
-----Original Message----- From: r-help-bounces at stat.math.ethz.ch [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Gardar Johannesson Sent: Wednesday, April 14, 2004 1:14 PM To: r-help at stat.math.ethz.ch Subject: [R] attaching data.frame/list within a function I'm trying to find a good way of attaching a list within a function such that the attached variables (the list's members) precede the global environment (.GlobalEnv) in the search list. Here is a non-working example using attach(), which hopefully explains better what I'm trying to do:
> foo <- function(x=0, input=list(a=10)) {
+ attach(input) + on.exit(detach(input)) + print(search()) + print(a) + }
> > a
Error: Object "a" not found
> foo() ## this prints out a = 10
[1] ".GlobalEnv" "input" "package:methods" "package:stats" [5] "package:graphics" "package:utils" "Autoloads" "package:base" [1] 10
> > a <- 0 > foo() ## this prints out a = 0, not a = 10
[1] ".GlobalEnv" "input" "package:methods" "package:stats" [5] "package:graphics" "package:utils" "Autoloads" "package:base" [1] 0
>
Thanks,
Gardar