On Mar 16, 2010, at 11:04 AM, jtouyz wrote:
Hey all,
I'm relatively new to the R-environment. I'm having a bit of trouble
with
encapsulation.
I have a globally declared variable that doesn't update it when I
change it
in a function.
For example when I run the following function
deckn<-NULL
deck1<-1 #52 card deck
deck<-function()
{
#Creating a standard deck
deck1<-c(1:52)
deckn<-deck1
#Creating n decks
for (i in 2:num_decks)
# could be wrong but it appears that you are expecting the act of
putting "num_" in front of "decks" to be interpreted by R as returning
the length of deckn or deck1. That is a higher level of abstraction
than is yet available in any computer language with which I am
familiar. Or perhaps you were intending to use Greg Snow's soon to be
released mind-reading package so that R could know that you wanted it
to be 6?.
Perhaps instead (depending on what the real problem (unstated as yet)
might be:
for (i in 2:length(deck1) ) # or some other object or function
that returns a numeric value.
{
deckn<-c(deckn,52*i+deck1-1)
}
}
deckn
You would have needed to assign a "return"-ed value to deckn in the
outer environment. The deckn object would have disappeared at the end
of the function call, and it would not have needed to be named
"deckn", either.
Try instead:
deckn<-NULL
deck<-function(num_decks=6)
{
#Creating a standard deck
deck1<-c(1:52)
deckn<-deck1
#Creating n decks
for (i in 2:num_decks)
{
deckn<-c(deckn,52*i+deck1-1)
}; return(deckn)
}
deckn <- deck()
deckn
Which has a gap between 52 and 104 because of your logic, not mine.
NULL
it returns NULL for deckn instead of a vector of values. Is there an
easy
fix to update deckn in the function so that it outputs a vector of
values (
I don't wish the function to return a value just update the current
one)?
You could, of course, explain what you are trying to do.
Thanks in advance,
Josh Elliott
--
David Winsemius, MD
West Hartford, CT
______________________________________________
R-help@r-project.org mailing list
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.