Dear useRs,

For an interactive use, I am trying to write a function that looks for all data.frames and lists in the environment and ask the user to select one of them. I then run some operations on this object.

This is what I am trying:

foo <- function(){
df.list <- ls()[sapply(ls(), function(x) class(get(x))) %in% c("data.frame","list")]
    dat.str <- select.list(choices=df.list, title="Select object")
    dat <- get(dat.str)
    str(dat)
}

Let's say I have these three objects:
vec <- 1:10
mylist <- list(1:3)
datf <- data.frame(var1=rnorm(10), var2=rnorm(10))

I would like the function to show me only mylist and datf in the dialog box. Everything works fine if I take the code out of the function, but when I run foo() I get this error:
"Error in get(dat.str) : first argument incorrect"

Is there a problem with using get() within a function? Maybe a problem with environments?

Thank you in advance for any help!
Ivan

--
Ivan Calandra, PhD
Scientific Mediator
University of Reims Champagne-Ardenne
GEGENAA - EA 3795
CREA - 2 esplanade Roland Garros
51100 Reims, France
+33(0)3 26 77 36 89
ivan.calan...@univ-reims.fr
--
https://www.researchgate.net/profile/Ivan_Calandra
https://publons.com/author/705639/

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to