[R] Errors checking a library
Peter Dalgaard
p.dalgaard at biostat.ku.dk
Thu Nov 18 15:32:59 CET 2004
"michael watson (IAH-C)" <michael.watson at bbsrc.ac.uk> writes:
> I am writing an R library.
A whole library? Shouldn't you try a package first?
> The documentation for one of my functions
> includes an example that I *know* works - simply cut and paste into R on
> either Windows and Linux and it works perfectly, no errors or warnings,
> nothing, nyet.
>
> However, when I run "R CMD check" on the library, I get an error. I am
> running R CMD check on linux, and the offending piece of code appears to
> be:
>
> cox[cox$group %in% onc,]
>
> "cox" is a data frame, one of the columns of which is group, which
> contains numbers. "onc" is a vector of numbers.
>
> The output on Linux from R CMD check is this:
>
> > # lots of code
> > # lots of code
> >cox[cox$group
> +
> +
> + # the rest of my code
> Error: syntax error
> Execution halted
>
> As can be seen, my code "cox[cox$group %in% onc,]" seems to have been
> executed incorrectly. Does R CMD check have a problem with the "%in%"
> operator? It would seem that R has somehow got mixed up and has lost
> the rest of my command.
Think: What is the comment character in .Rd files?
Checking out src/library/base/man/match.Rd should be enlightening, but
since you might not have R sources installed, here are the relevant
bits:
\name{match}
\alias{match}
\alias{\%in\%}
\title{Value Matching}
\description{
\code{match} returns a vector of the positions of (first) matches of
its first argument in its second.
\code{\%in\%} is a more intuitive interface as a binary operator,
which returns a logical vector indicating if there is a match or not
for its left operand.
}
\usage{
match(x, table, nomatch = NA, incomparables = FALSE)
x \%in\% table
}
....
\examples{
## The intersection of two sets :
intersect <- function(x, y) y[match(x, y, nomatch = 0)]
intersect(1:10,7:20)
1:10 \%in\% c(1,3,5,9)
sstr <- c("c","ab","B","bba","c","@","bla","a","Ba","\%")
sstr[sstr \%in\% c(letters,LETTERS)]
"\%w/o\%" <- function(x,y) x[!x \%in\% y] #-- x without y
(1:10) \%w/o\% c(3,7,12)
}
\keyword{manip}
--
O__ ---- Peter Dalgaard Blegdamsvej 3
c/ /'_ --- Dept. of Biostatistics 2200 Cph. N
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
More information about the R-help
mailing list