Hi Peter and Rolf, In fact there was a missing EOL at the end, but I had already fixed that. It was an error in a previous function (delim.table) and Rolf's little function spotted it. Thanks to both of you for quick and helpful answers.
Jim On Fri, Mar 22, 2019 at 9:49 PM Rolf Turner <r.tur...@auckland.ac.nz> wrote: > > > On 22/03/19 11:18 PM, Jim Lemon wrote: > > > Hi, > > I have been attempting to check a new version of the prettyR package, > > and have struck a difficult problem. The check fails at the > > installation, and when I track the error, it is "Unexpected end of > > input" in the xtab function. I have tried a number of things as I > > thought that it was a non-printing character (I have had that happen > > before). I can paste the entire function into an R session and there > > is no error. Has anyone struck an error like this before? > > > > xtab<-function(formula,data,varnames=NULL,or=TRUE,chisq=FALSE,phi=FALSE, > > html=FALSE,bgcol="lightgray") { > > > > if(missing(formula)) > > stop("Usage: > > xtab(formula,data,varnames=NULL,or=TRUE,chisq=FALSE,phi=FALSE\n") > > ft<-as.character(attr(terms(formula),"variables")[-1]) > > nft<-length(ft) > > if(nft>2) { > > xt<-list() > > by.factor<-as.factor(data[[ft[nft]]]) > > factor.levels<-levels(by.factor) > > factor.labels<-attr(data[,ft[nft]],"value.labels") > > if(!is.null(names(factor.labels))) factor.labels<-names(factor.levels) > > if(is.null(factor.labels)) factor.labels<-factor.levels > > nlevels<-length(factor.levels) > > for(i in 1:nlevels) { > > currentdata<-subset(data,by.factor==factor.levels[i]) > > for(j in 1:dim(currentdata)[2]) > > attr(currentdata[,j],"value.labels")<-attr(data[,j],"value.labels") > > currentcount<-length(currentdata[[nft]]) > > totalcount<-length(data[[nft]]) > > cat("\nCount for",ft[nft],"=",factor.labels[i],"is",currentcount, > > "(",round(100*currentcount/totalcount,1),"%)\n\n") > > rightside<-ifelse(nft>3,paste(ft[2:(nft-1)],sep="",collapse="+"),ft[2]) > > next.formula<-as.formula(paste(ft[1],rightside,sep="-",collapse="")) > > > > xt[[i]]<-xtab(next.formula,data=currentdata,varnames=varnames,chisq=chisq, > > phi=phi,html=html,bgcol=bgcol) > > } > > } > > else { > > if(missing(data)) > > xt<-calculate.xtab(get(ft[1]),get(ft[2]),varnames=varnames) > > else xt<-calculate.xtab(data[,ft[1]],data[,ft[2]],varnames=varnames) > > } > > attr(xt,"class")<-"xtab" > > return(xt) > > } > > Thanks for any pointers. > > I believe I have encountered phenomena like this where the error was > actually in the *"previous"* function in the sequence of package > functions stored in the *.rdb or *.rdx files in the "R" directory of the > package. > > To track down where the error is actually occurring I cd to the R > directory of the *source* package, start R, and do something like: > > phials <- list.files(pattern=".R$") > for(phial in phials) { > cat(phial,"\n") > source(phial) > } > > That should allow you to spot the loony pretty quickly. > > HTH > > cheers, > > Rolf > > -- > Honorary Research Fellow > Department of Statistics > University of Auckland > Phone: +64-9-373-7599 ext. 88276 ______________________________________________ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel