Fulvio Copex
2004-Feb-21 10:07 UTC
[R] saving variables created by functions in the workspace
Hello , just a simple question from a beginner: I write the function: plotsinx <- function() { x<-seq(0,2*pi,0.01) sinx<-sin(x) plot(sinx) } I recall it: plotsinx() and the plot works properly. but then in the workspace if I want to look at the values of sinx the following error is displayed: Error: Object "sinx" not found. How to save the variables created by the function on the workspace? Thank you very much, it seems to be very trivial... Copex. ______________________________________________________________________ http://it.yahoo.com/mail_it/foot/?http://it.mail.yahoo.com/
Uwe Ligges
2004-Feb-21 10:53 UTC
[R] saving variables created by functions in the workspace
Fulvio Copex wrote:> > Hello , > > just a simple question from a beginner: > > I write the function: > plotsinx <- function() > { > x<-seq(0,2*pi,0.01) > sinx<-sin(x) > plot(sinx) > } > I recall it: > plotsinx() > and the plot works properly. > but then in the workspace if I want to look at the > values of sinx the following error is displayed: > Error: Object "sinx" not found. > How to save the variables created by the function on > the workspace? > Thank you very much, it seems to be very trivial... > Copex.Please read the manual "An Introduction to R", in particular Chapter 10 and Sectoin 10.5, and the help page help("function"). Uwe Ligges
Gabor Grothendieck
2004-Feb-21 13:47 UTC
[R] saving variables created by functions in the workspace
sinx is local to your function so it is only known within the function, not outside it. The reason its like that is to promote modularity. You can do one of the following: 1. Return it explicitly from your function: plotsinx <- function(x) { sinx <- sin(x); plot(sinx); sinx } Now call it like this: sinx <- plotsinx(x) 2. Use assign and explicitly assign it in the global environment rather than the local environment of the function: plotsinx <- function(x) { assign("sinx",sin(x),.GlobalEnv) plot(sinx) } See ?assign 3. Use <<- as in: plotsinx <- function(x) { sinx <- sin(x) plot(sinx) } If you use this one be sure that you don't nest the definition of plotsinx in another function since it actually searches through the environments of the definition's parents. See ?"<<-" If you just want to look at it but not manipulate it outside of the function you could try these: 4. Use print. See ?print plotsinx <- function(x) { sinx <- sin(x) print(sinx) plot(sinx) } 5. Use debug debug(plotsinx) Now when you run the function you can step through it line by line displaying each of the local variables if you like. See ?debug Date: Sat, 21 Feb 2004 11:07:00 +0100 (CET) From: =?iso-8859-1?q?Fulvio=20Copex?= <copellifulvio at yahoo.it> To: <r-help at stat.math.ethz.ch> Subject: [R] saving variables created by functions in the workspace Hello , just a simple question from a beginner: I write the function: plotsinx <- function() { x<-seq(0,2*pi,0.01) sinx<-sin(x) plot(sinx) } I recall it: plotsinx() and the plot works properly. but then in the workspace if I want to look at the values of sinx the following error is displayed: Error: Object "sinx" not found. How to save the variables created by the function on the workspace? Thank you very much, it seems to be very trivial... Copex.
Gabor Grothendieck
2004-Feb-21 16:06 UTC
[R] saving variables created by functions in the workspace
[There was an error in #3. I had omitted the <<-. Here it is again. sinx is local to your function so it is only known within the function, not outside it. The reason its like that is to promote modularity. You can do one of the following: 1. Return it explicitly from your function: plotsinx <- function(x) { sinx <- sin(x); plot(sinx); sinx } Now call it like this: sinx <- plotsinx(x) 2. Use assign and explicitly assign it in the global environment rather than the local environment of the function: plotsinx <- function(x) { assign("sinx",sin(x),.GlobalEnv) plot(sinx) } See ?assign 3. Use <<- as in: plotsinx <- function(x) { sinx <<- sin(x) plot(sinx) } If you use this one be sure that you don't nest the definition of plotsinx in another function since it actually searches through the environments of the definition's parents. See ?"<<-" If you just want to look at it but not manipulate it outside of the function you could try these: 4. Use print. See ?print plotsinx <- function(x) { sinx <- sin(x) print(sinx) plot(sinx) } 5. Use debug debug(plotsinx) Now when you run the function you can step through it line by line displaying each of the local variables if you like. See ?debug Date: Sat, 21 Feb 2004 11:07:00 +0100 (CET) From: =?iso-8859-1?q?Fulvio=20Copex?= <copellifulvio at yahoo.it> To: <r-help at stat.math.ethz.ch> Subject: [R] saving variables created by functions in the workspace Hello , just a simple question from a beginner: I write the function: plotsinx <- function() { x<-seq(0,2*pi,0.01) sinx<-sin(x) plot(sinx) } I recall it: plotsinx() and the plot works properly. but then in the workspace if I want to look at the values of sinx the following error is displayed: Error: Object "sinx" not found. How to save the variables created by the function on the workspace? Thank you very much, it seems to be very trivial... Copex. ______________________________________________ R-help at stat.math.ethz.ch mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html As AttachmentAs Inline Text Move to Folder----- Folders ------InboxDraftsSentTrashBulk Mail---- My Folders ----RRcomRtmpSaved < Prev Next > Back to Inbox Print View Full Header Make My Way Your Home Page | Spread the Word My Settings: Overview | Search | Email | Chat | Portfolio | Calendar | Groups | Profile IMPORTANT: We do not present our users with pop-ups, banners or any other non-text advertising. Nor do we send email to our users. If you see or receive one of these items, it is coming from an outside source, either as a result of something you have previously downloaded or as an "exit" pop-up from the site you just visited. It is not coming from our site. Privacy Policy Terms of Service Partner with Us Our Mission Sign In Sign Out Help Center © 2002-2004 My Way