You need to tell us what compare() in S-PLUS does; i.e., what does it take as input and what does it output. Presumably the information would be in the help page for compare(). Telling us what the function looks like in S-PLUS is of no use, since most likely the code cannot be used in R without violating S-PLUS copyright and/or license. Even if that wasn't an obstacle, the fact that it calls .Internal() says the actual code is written in C, and of course no one outside of Insightful (and perhaps Bell Labs) has access to code at that level. And even then, R and S-PLUS are not likely to be compatible at that level. Andy From: Bellinger Instruments P/L> > The sign() function requires one argument, > and returns the sign of the value, where I require a number > -1, 0, or 1 depending on if the value is <, ==, or > the > first argument. > > This is the Splus function when listed, > > compare > function(e1, e2) > .Internal(compare(e1, e2), "do_op", T, 18) > > unfortunately I do not understand the .internal function > and cannot find any description of this type of programming > on the CRAN site > > > > This is how I am using it in the source file. > > > zz <- readline() # keyboard input eg: f15 > > > if (charmatch(substring(zz,1,1),"f", > nomatch=-1) >0){ > ii <- as.numeric(substring(zz,2,99)) > > iii <- compare(ii*1e9,f) # f is a vector of > length(146) frequencies > # compare() searches thru f and > # creates vector iii with > # -1 if numeric is < f[i], > # 0 if numeric is == f[i], and > # 1 if numeric is > f[i] > > # the end result is a vector(iii) length(146) > # with -1,0,1 if the numeric is in f > > > i <- match(-1,c(iii,-1))-1 # if vector(iii) contains 0 > assign the index > } > > # error traps for if 0 is not in vector(iii) > > if (i<1){cat("Min n = 1\n") > i <- 1} > if (i>length(f)){cat("Max n =",length(f),"\n") > i <- length(f)} > > -----Original Message----- > From: Prof Brian Ripley [mailto:ripley at stats.ox.ac.uk] > Sent: Thursday, 20 April 2006 4:02 PM > Subject: Re: [R] how to do Splus compare() function in R > > You would need to tell us what it does (and what the inputs are). > > I think it is likely that compare(x, y) in S-PLUS is the same > as sign(x-y) in R, at least with numeric vector inputs. > > -- > Bob Kelly lab at bellinger.com.au > Metrologist & Microwave Eng. http://www.bellinger.com.au > Bellinger Instruments Pty Ltd Tel: 612 9684 1442 > 4 Muriel Ave Fax: 612 9638 4435 > Rydalmere NSW > Australia 2116 > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html > >