Dear R and S People:
I have run across something very strange. Here is a function that I wrote
for R:
boot1 <- function(y,method="f",p=1) {
n1 <- length(y)
n2 <- n1*p
n3 <- n2 - 1
a <- 0.5*(outer(1:n3,1:n3,function(x,y){n2 - pmax(x,y)}))
return(a)
}
and here is the R output:> y1
[1] 9 8 7 3 6> source("boot1.R")
> boot1(y=y1,p=4)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14]
[,15] [,16] [,17] [,18] [,19]
[1,] 9.5 9.0 8.5 8.0 7.5 7.0 6.5 6.0 5.5 5.0 4.5 4.0 3.5 3.0
2.5 2.0 1.5 1.0 0.5
[2,] 9.0 9.0 8.5 8.0 7.5 7.0 6.5 6.0 5.5 5.0 4.5 4.0 3.5 3.0
2.5 2.0 1.5 1.0 0.5
[3,] 8.5 8.5 8.5 8.0 7.5 7.0 6.5 6.0 5.5 5.0 4.5 4.0 3.5 3.0
2.5 2.0 1.5 1.0 0.5
[4,] 8.0 8.0 8.0 8.0 7.5 7.0 6.5 6.0 5.5 5.0 4.5 4.0 3.5 3.0
2.5 2.0 1.5 1.0 0.5
[5,] 7.5 7.5 7.5 7.5 7.5 7.0 6.5 6.0 5.5 5.0 4.5 4.0 3.5 3.0
2.5 2.0 1.5 1.0 0.5
[6,] 7.0 7.0 7.0 7.0 7.0 7.0 6.5 6.0 5.5 5.0 4.5 4.0 3.5 3.0
2.5 2.0 1.5 1.0 0.5
[7,] 6.5 6.5 6.5 6.5 6.5 6.5 6.5 6.0 5.5 5.0 4.5 4.0 3.5 3.0
2.5 2.0 1.5 1.0 0.5
[8,] 6.0 6.0 6.0 6.0 6.0 6.0 6.0 6.0 5.5 5.0 4.5 4.0 3.5 3.0
2.5 2.0 1.5 1.0 0.5
[9,] 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.0 4.5 4.0 3.5 3.0
2.5 2.0 1.5 1.0 0.5
[10,] 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 4.5 4.0 3.5 3.0
2.5 2.0 1.5 1.0 0.5
[11,] 4.5 4.5 4.5 4.5 4.5 4.5 4.5 4.5 4.5 4.5 4.5 4.0 3.5 3.0
2.5 2.0 1.5 1.0 0.5
[12,] 4.0 4.0 4.0 4.0 4.0 4.0 4.0 4.0 4.0 4.0 4.0 4.0 3.5 3.0
2.5 2.0 1.5 1.0 0.5
[13,] 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.0
2.5 2.0 1.5 1.0 0.5
[14,] 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0
2.5 2.0 1.5 1.0 0.5
[15,] 2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5
2.5 2.0 1.5 1.0 0.5
[16,] 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0
2.0 2.0 1.5 1.0 0.5
[17,] 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5
1.5 1.5 1.5 1.0 0.5
[18,] 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
1.0 1.0 1.0 1.0 0.5
[19,] 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5
0.5 0.5 0.5 0.5 0.5>
which is as it should be.
Now I tried the same thing in S+> y1
[1] 9 8 7 3 6> source("boot1.R")
> boot1(y=y1,p=4)
Problem in FUN(rep(X, length(Y)), rep(Y, each = length(X))): Object
"n2" not found
Use traceback() to see the call stack>
I have no idea why it works in R but not in S+.
R 1.9.1 for Windows
S+ Version 6.2 for Windows.
Any help is appreciated!
Is this part of the difference in scoping, please?
Sincerely,
Erin M. Hodgess
Associate Professor
Dept. of Computer and Mathematical Sciences
University of Houston - Downtown
mailto: hodgesse at uhd.edu