[R] Simple Function
Nick Sabbe
nick.sabbe at ugent.be
Wed Nov 10 09:47:16 CET 2010
Hi Nikos.
There is quite a bit going on here, both in the code and in your
terminology.
You should really consider reading "An introduction to R" that comes with
your R installation.
A few pointers though:
* in R speak, you have nowhere "declared 2 global matrices": it is not
completely clear why you use code like "y<-c(NA)" to try to achieve such a
thing, but if I'm not mistaken, this creates a logical vector of length 1.
Surely not a matrix.
* operator <- only looks for variables in the environment in which they are
evaluated, as does = (note: I would advise you to use <- in R as an
assignment operator instead of =). If you want to change variables in other
environments, particularly the global environment, you need to use <<- (?<<-
does not seem to work to get you to its help page, but open R help, then
find the search page and search for <<-, for more information).
* apart from that: you may want to avoid the for loop here altogether:
y[i:10]<-(i:10)+1
f[i:10]<-y[(i-1):9]/2
gives you the same result, but more in the R fashion (in general, you want
to avoid explicit for loops in R)
HTH,
Nick Sabbe
--
ping: nick.sabbe at ugent.be
link: http://biomath.ugent.be
wink: A1.056, Coupure Links 653, 9000 Gent
ring: 09/264.59.36
-- Do Not Disapprove
-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On
Behalf Of rnick
Sent: woensdag 10 november 2010 7:51
To: r-help at r-project.org
Subject: [R] Simple Function
Hi guys,
Very new to R and your help would be highly appreciated for the following
problem. I am trying to create a simple function which registers values
within an array through a for loop. These are the steps I have followed:
1) Declared 2 global matrices
2) Create function mat() with i as an input
3) constructed the for loop
4) called mat(2)
The problem is that when i try to get y[4] and f[5] the output is: [1] NA
my concern is that i am not addressing any of the following topics:
1) definition of global variable
2) the argument does not go through the for loop
3) the matrices definition is not correct
4) other
Please check my code below:
y=c(NA)
f=c(NA)
mat<-function(i)
{
for (k in i:10)
{
y[k]=k+1
f[k]=y[k-1]/2
}
}
mat(2)
Any thoughts or recommendations would be highly appreciated.
Thanks in advance,
N
--
View this message in context:
http://r.789695.n4.nabble.com/Simple-Function-tp3035572p3035572.html
Sent from the R help mailing list archive at Nabble.com.
[[alternative HTML version deleted]]
______________________________________________
R-help at 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.
More information about the R-help
mailing list