[R] subsetting

Bert Gunter gunter.berton at gene.com
Fri Jan 4 19:50:12 CET 2008

See FAQ 7.12 and the R Language Definition manual on scoping.

R uses lexical scoping which means here that s does not exist in the
enclosing environment of inner(), which is the global environment. 

Bert Gunter
Genentech Nonclinical Statistics

-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On
Behalf Of Matthias Wendel
Sent: Friday, January 04, 2008 10:37 AM
To: r-help at r-project.org
Subject: [R] subsetting

I'm using R Version 2.6.1 under Windows XP.

> search()
 [1] ".GlobalEnv"            "s"                     "s"
 [5] "package:datasets"      "package:foreign"       "package:graphics"
 [9] "package:gWidgetsrJava" "package:gWidgets"      "package:Hmisc"
[13] "package:JavaGD"        "package:rJava"         "package:stats"
[17] "package:methods"       "Autoloads"             "package:base"  

The Problem: I'm using a function which is constructing a subset of a
dataframe. This dataframe is used in another function. The
structure is like this:

> inner = function (){
+ print('inner:')
+ print(s)
+ }
> outer = function(){
+ t = data.frame(list(X=1:10, Y=LETTERS[1:10]))
+ s = t[t[,'X'] < 5, ]
+ print('outer:')
+ print(t[, 'Y'])
+ inner()
+ }
> outer()

And the response in the R-Console is:

[1] "outer:"
 [1] A B C D E F G H I J
Levels: A B C D E F G H I J
[1] "inner:"
Fehler in print(s) : objekt "s" nicht gefunden
(Error in print(s) : object "s" not found)

How can I make s reachable in inner?


R-help at r-project.org mailing list
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

More information about the R-help mailing list