On Thu, 1 Oct 2009, Vik wrote:
> Hello,
>
> I am trying to figure out how to use optimize() with array variables
> as inputs. I have a for loop in the function definition:
>
> SS <- function(int,slo,x,y){
> for(i in 1:length(x)) ((int+slo*x[i])-y[i])^2->squares[i]
> sum(squares)->>sum_squares
> output_txt = c ("The sum of squares is", sum_squares)
> print(output_txt, quote=FALSE)}
>
Try running your code in a clean session. There is an error (and not the
one you quote below).
After you get rid of that error, try
val <- SS ( 0.1, 1, 1, 1 )
then
print( val )
The difficulty optimize is having should be apparent.
In spite of the pressure you are under, you will need to slow down, write
readable code, and take the time to learn about writing functions in R
before you can hope to get anywhere with a problem like this.
Read the posting guide. For a problem like this one, the 'Some'
mentioned
below includes many of the people on this list who can provide useful,
knowledgeable answers:
Some consider it good manners to include a concise signature
specifying affiliation
HTH,
Chuck
p.s. do not use '<<-' or '->>' until you really,
really know what it does
(which means you understand 'scoping')!
> Even assuming I make x and y single-integer variables, for example:
>
> optimize(SS, c(0,1), tol = 0.0001, x=1, y=1, slo=1)
>
> I get the error:
>
> Error in optimize(SS, c(0, 1), tol = 1e-04, x = 1, y = 1, slo = 1) :
> invalid function value in 'optimize'
>
> Not sure what that means. This also happens when x and y are defined
> as arrays. Does optimize require me to input values for all variables
> that are not being optimized (i.e. for n-1 of the inputs)? Why am I
> getting an error.
>
> I am new to R and under pressure to get some calculations done for my
> work. I'd appreciate an answer to the specific question - and I fully
> understand that I need to read up on R basics in more depth, which I
> am doing as best I can while trying to get this work done. Thanks!
>
> ______________________________________________
> 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.
>
Charles C. Berry (858) 534-2098
Dept of Family/Preventive Medicine
E mailto:cberry at tajo.ucsd.edu UC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/ La Jolla, San Diego 92093-0901