r-gregmisc-users Mailing List for R gregmisc package (Page 30)
Brought to you by:
warnes
You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
(12) |
Apr
(5) |
May
(3) |
Jun
(5) |
Jul
(2) |
Aug
(5) |
Sep
(7) |
Oct
(15) |
Nov
(34) |
Dec
(3) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(3) |
Feb
(16) |
Mar
(28) |
Apr
(5) |
May
|
Jun
(5) |
Jul
(9) |
Aug
(50) |
Sep
(29) |
Oct
(9) |
Nov
(25) |
Dec
(7) |
2008 |
Jan
(6) |
Feb
(4) |
Mar
(5) |
Apr
(8) |
May
(26) |
Jun
(11) |
Jul
|
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
(9) |
2009 |
Jan
|
Feb
(1) |
Mar
|
Apr
(2) |
May
(26) |
Jun
|
Jul
(10) |
Aug
(6) |
Sep
|
Oct
(7) |
Nov
(3) |
Dec
(2) |
2010 |
Jan
(45) |
Feb
(11) |
Mar
|
Apr
(1) |
May
(8) |
Jun
(7) |
Jul
(3) |
Aug
(1) |
Sep
|
Oct
(1) |
Nov
(9) |
Dec
(1) |
2011 |
Jan
(2) |
Feb
|
Mar
|
Apr
(3) |
May
(1) |
Jun
|
Jul
|
Aug
(14) |
Sep
(29) |
Oct
(3) |
Nov
|
Dec
(3) |
2012 |
Jan
|
Feb
|
Mar
|
Apr
(7) |
May
(6) |
Jun
(59) |
Jul
|
Aug
(8) |
Sep
(21) |
Oct
|
Nov
|
Dec
|
2013 |
Jan
(1) |
Feb
|
Mar
(10) |
Apr
|
May
(18) |
Jun
(25) |
Jul
(18) |
Aug
(1) |
Sep
(6) |
Oct
(28) |
Nov
(4) |
Dec
(13) |
2014 |
Jan
(7) |
Feb
(5) |
Mar
(4) |
Apr
(36) |
May
(3) |
Jun
(7) |
Jul
(46) |
Aug
(14) |
Sep
(12) |
Oct
(2) |
Nov
|
Dec
(12) |
2015 |
Jan
(4) |
Feb
|
Mar
|
Apr
(80) |
May
(36) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <wa...@us...> - 2008-05-20 00:14:56
|
Revision: 1271 http://r-gregmisc.svn.sourceforge.net/r-gregmisc/?rev=1271&view=rev Author: warnes Date: 2008-05-19 17:14:51 -0700 (Mon, 19 May 2008) Log Message: ----------- Add Venn Diagram plot submitted by Steffen Moeller Modified Paths: -------------- trunk/gplots/DESCRIPTION trunk/gplots/NAMESPACE Added Paths: ----------- trunk/gplots/R/venn.R trunk/gplots/man/venn.Rd Modified: trunk/gplots/DESCRIPTION =================================================================== --- trunk/gplots/DESCRIPTION 2008-05-13 03:16:08 UTC (rev 1270) +++ trunk/gplots/DESCRIPTION 2008-05-20 00:14:51 UTC (rev 1271) @@ -2,10 +2,13 @@ Title: Various R programming tools for plotting data Description: Various R programming tools for plotting data Depends: R (>= 1.9.0), gtools, gdata, stats, caTools -Recommends: datasets -Suggests: gtools, gdata -Version: 2.6.0 +Recommends: datasets, grid +Suggests: gtools, grid +Version: 2.7.0 Author: Gregory R. Warnes. Includes R source code and/or documentation - contributed by Ben Bolker and Thomas Lumley + contributed by (in alphabetical order): + Ben Bolker, Lodewijk Bonebakker, Robert Gentleman, Wolfgang + Huber Andy Liaw, Thomas Lumley, Martin Maechler, Arni + Magnusson, Steffen Moeller, Marc Schwartz, Bill Venables Maintainer: Gregory R. Warnes <wa...@bs...> License: GPL-2 Modified: trunk/gplots/NAMESPACE =================================================================== --- trunk/gplots/NAMESPACE 2008-05-13 03:16:08 UTC (rev 1270) +++ trunk/gplots/NAMESPACE 2008-05-20 00:14:51 UTC (rev 1271) @@ -25,6 +25,7 @@ smartlegend, space, textplot, + venn, wapply ) Added: trunk/gplots/R/venn.R =================================================================== --- trunk/gplots/R/venn.R (rev 0) +++ trunk/gplots/R/venn.R 2008-05-20 00:14:51 UTC (rev 1271) @@ -0,0 +1,437 @@ +# This code plots Venn Diagrams for up to 5 sets. The +# function getVennCounts is passed a list of vectors. +# This is transformed into a table indicating the +# number of members for each intersection. This table +# is generated for any number of sets. + +# The function drawVennDiagram plots circles (up to three +# sets) or ellipses (4 and 5 sets) to depict the sets. +# The sum of values placed is the number of entries of +# each set. + +# transform base +# v = value of base 10 to be transformed +# b = new base +# l = minimal length of returned array (default is 1) +# return value: array of factors, highest exponent first +baseOf<-function(v,b,l=1) { + remainder<-v + i<-l + ret<-NULL + while(remainder>0 || i>0) { + #print(paste("i=",i," remainder=",remainder)) + m<-remainder%%b + if (is.null(ret)) { + ret<-m + } + else { + ret<-c(m,ret) + } + remainder <- remainder %/% b + i<-i-1 + } + return(ret) +} + +# Function to determine values of a venn diagram +# It works for an arbitrary large set of input sets. +# + +getVennCounts <- function(l, universe, ...) + UseMethod("getVennCounts") + +getVennCounts.data.frame <- function(l, universe=NA, ...) + { + if( !all(unique(unlist(l)) %in% c(0,1)) ) + stop("Only indicator columns permitted") + + l <- sapply( l, function(x) which(as.logical(x))) + getVennCounts.list(l) + } + +getVennCounts.list<-function(l,universe=NA) { + numSets<-length(l) + result.table<-NULL + result.table.names<-NULL + for (i in 0:(-1 + 2^numSets)) { + # i2 is a binary representation of that number + i2<-baseOf(i,2,numSets) + + # some debug output + #print(paste(i,":",paste(i2,collapse="",sep=""))) + + # p.pos determines the position in number + # which is also the set that is inspected + + sel<-universe + + # positive selection first + for (p.pos in which(1 == i2) ) { + current.set<-l[[p.pos]] + #print(paste("set ",p.pos,", val=1: ",paste(current.set,collapse=","))) + if (is.null(sel)) { + #print("Sel is null") + } else if (1 == length(sel) && is.na(sel)) { + sel<-current.set + } + else { + w<-which(sel %in% current.set) + if (length(w)>0) { + sel<-sel[w] + } + else { + sel<-NULL + } + } + } + + # something should be in sel now, otherwise + # the number will be 0 + + # negative selection + for (p.pos in which(0 == i2) ) { + if (is.null(sel) || ( 1 == length(sel) && is.na(sel))) { + # The complement is not known, hence no checks done + } + else { + current.set<-l[[p.pos]] + w<-which( ! sel %in% current.set) + #print(paste("set ",p.pos,", val=1: ",paste(current.set,collapse=","))) + if (length(w)>0) { + sel<-sel[w] + } + else { + sel<-NULL + } + } + } + #print(paste("sel:",paste(sel,collapse=","))) + + if(is.null(sel) || (1 == length(sel) && is.na(sel))) { + sel<-NULL + } + + r<-length(sel) + r.name<-paste(i2,collapse="") + result.row<-c(r,i2) + dim(result.row)<-c(1,length(result.row)) + rownames(result.row)<-c(r.name) + #print(paste("Adding ",r.name)) + if (is.null(result.table)) { + result.table<-result.row + } + else { + result.table<-rbind(result.table,result.row) + } + #if (is.null(result.table)) { + # result.table<-r + # result.table.names<-r.name + #} + #else { + # result.table<-c(result.table,r) + # result.table.names<-c(result.table.names,r.name) + #} + } + #names(result.table)<-result.table.names + if (is.null(names(l))) { + colnames(result.table)<-c("num",LETTERS[1:numSets]) + } + else{ + colnames(result.table)<-c("num",names(l)) + } + return(result.table) +} + +#print(getVennCounts(list(A,B,C,D))) +#print(getVennCounts(list(a=A,b=B,c=C,d=D))) + + +## data should be a matrix. +## - The first column of the matrix is the +## count of the number of objects with the specified pattern. +## - The second and subsequent columns contain 0-1 indicators +## giving the pattern of group membership + + +drawVennDiagram <-function(data,small=0.7, + showSetLogicLabel=FALSE,simplify=FALSE) { + numCircles<-NA + data.colnames<-NULL + data.rownames<-NULL + if(is.matrix(data)) { + numCircles<-ncol(data)-1 + data.colnames<-colnames(data)[2:(ncol(data))] + # Order is reverted since later indexing starts with + # the "lowest bit" and that is expected at the left + data.rownames<-rownames(data) + } + else { + cat("Testing only, presuming first argument to specify", + "the number of circles to draw.\n") + numCircles<-data + } + + m<-(0:(-1+2^numCircles)) + + if (! is.matrix(data)) { + ##cat("prepare randomised data\n") + data<-t(sapply(X=m,FUN=function(v){ + l<-baseOf(v,2,numCircles) + #print(l) + return(l) + })) + + #print(data) + + #data.names<-apply(data,1,function(X){ + # return(paste(X),collapse="") + #}) + for(i in m) { + n<-paste(data[i+1,],collapse="") + if (is.null(data.rownames)) { + data.rownames<-n + } + else { + data.rownames<-c(data.rownames,n) + } + } + #print(data.rownames) + data<-cbind(sample(1:100,size=2^numCircles,replace=TRUE),data) + #print(data) + rownames(data)<-data.rownames + data.colnames<-LETTERS[1:numCircles] + colnames(data)<-c("num",data.colnames) + } + + if ((2 <= numCircles && numCircles <= 3) || (4 == numCircles && simplify)) { + ##cat("drawing circles\n") + # draw circles with radius 1.7 equally distributed + # with centers on a circle of radius 1 + + degrees<-2*pi/numCircles*(1:numCircles) + + # scaling factor + s<-1/8 + + x<-sapply(degrees,FUN=sin)*s + 0.5 + y<-sapply(degrees,FUN=cos)*s + 0.5 + + + if(!require(grid)) { + stop("Need access to 'grid' library.") + } + grid.newpage() + grid.circle(x,y,3/12,name="some name") + + ##cat("filling data\n") + + distFromZero<-rep(NA,2^numCircles) + degrees<-rep(NA,2^numCircles) + + degrees[(2^numCircles)]<-0 + distFromZero[(2^numCircles)]<-0 + + for (i in 0:(numCircles-1)) { + distFromZero[2^i+1] <- 4/12 + degrees[2^i+1] <- 2*pi/numCircles*i + d<-degrees[2^i+1] + + #print(data.colnames) + + grid.text( + # starting from the lowest bit, hence reading + # lables from the right + label=data.colnames[numCircles - i], + x=sin(d)*5/12+0.5, + y=cos(d)*5/12+0.5, + rot=0 + ) + + } + + if (4==numCircles) { + for (i in 0:(numCircles-1)) { + # Current set bit plus the bit left of it and the bit right of it + distFromZero[2^i + +2^((i+numCircles-1)%%numCircles) + +2^((i+1)%%numCircles)+1] <- 2/12 + degrees[2^i + +2^((i+numCircles-1)%%numCircles) + +2^((i+1)%%numCircles)+1] <- degrees[2^i+1] + } + } + + #degrees[2^i+1] + degrees[2^((i+1)%%numCircles)+1])/2 + + if (3 <=numCircles) { + for (i in 0:(numCircles-1)) { + distFromZero[(2^i+2^((i+1)%%numCircles))+1]<- 3/12 + if (i == (numCircles-1)) { + degrees[(2^i+2^((i+1)%%numCircles))+1] <- ( + degrees[2^i+1] + 2*pi+ degrees[1+1])/2 + } + else { + degrees[(2^i+2^((i+1)%%numCircles))+1] <- ( + degrees[2^i+1] + degrees[2^((i+1)%%numCircles)+1])/2 + } + + } + } + + for(i in 1:2^numCircles) { + n<-paste(baseOf((i-1),2,numCircles),collapse="") + v<-data[n,1] + d<-degrees[i] + if (1 == length(d) && is.na(d)) { + if (v>0) warning("Not shown: ",n,"is",v,"\n") + } + else { + l<-distFromZero[i] + x<-sin(d)*l+0.5 + y<-cos(d)*l+0.5 + #cat("i=",i," x=",x," y=",y," label=",n,"\n") + l<-v + if (showSetLogicLabel) l<-paste(n,"\n",v,sep="") + grid.text(label=l,x=x,y=y,rot=0) + } + } + } + else if (4 <= numCircles && numCircles <= 5 && !simplify) { + + grid.newpage() + # Function to turn and move ellipses + relocate_elp <- function(e, alpha, x, y){ + phi=(alpha/180)*pi; + xr=e[,1]*cos(phi)+e[,2]*sin(phi) + yr=-e[,1]*sin(phi)+e[,2]*cos(phi) + xr=x+xr; + yr=y+yr; + return(cbind(xr, yr)) + } + + lab<-function (identifier, data, showLabel=showSetLogicLabel) { + r<-data[identifier,1] + if (showLabel) { + return(paste(identifier,r,sep="\n")) + } + else { + return(r) + } + } + + plot(c(0, 400), c(0, 400), type="n", axes=F, ylab="", xlab="") + if (4 == numCircles) { + elps=cbind(162*cos(seq(0,2*pi,len=1000)), 108*sin(seq(0,2*pi,len=1000))); + + plot(c(0, 400), c(0, 400), type="n", axes=F, ylab="", xlab=""); + polygon(relocate_elp(elps, 45,130, 170)); + polygon(relocate_elp(elps, 45,200, 200)); + polygon(relocate_elp(elps, 135,200, 200)); + polygon(relocate_elp(elps, 135,270, 170)); + + text( 35, 315, data.colnames[1],cex=1.5) + text(138, 347, data.colnames[2],cex=1.5) + text(262, 347, data.colnames[3],cex=1.5) + text(365, 315, data.colnames[4],cex=1.5) + + elps <- cbind(130*cos(seq(0,2*pi,len=1000)), + 80*sin(seq(0,2*pi,len=1000))) + + text( 35, 250, lab("1000",data)); + text(140, 315, lab("0100",data)); + text(260, 315, lab("0010",data)); + text(365, 250, lab("0001",data)); + + text( 90, 280, lab("1100",data), cex=small) + text( 95, 110,lab("1010",data) ) + text(200, 50, lab("1001",data), cex=small) + text(200, 290, lab("0110",data)) + text(300, 110, lab("0101",data)) + text(310, 280, lab("0011",data), cex=small) + + text(130, 230, lab("1110",data)) + text(245, 75, lab("1101",data),cex=small) + text(155, 75, lab("1011",data),cex=small) + text(270, 230, lab("0111",data)) + + text(200,150,lab("1111",data)) + } + else if (5 == numCircles) { + + elps <- cbind(150*cos(seq(0,2*pi,len=1000)), + 60*sin(seq(0,2*pi,len=1000))) + + polygon(relocate_elp(elps, 90,200, 250)) + polygon(relocate_elp(elps, 162,250, 220)) + polygon(relocate_elp(elps, 234,250, 150)) + polygon(relocate_elp(elps, 306,180, 125)) + polygon(relocate_elp(elps, 378,145, 200)) + + text( 50, 280, data.colnames[1],cex=1.5) + text(150, 400, data.colnames[2],cex=1.5) + text(350, 300, data.colnames[3],cex=1.5) + text(350, 20, data.colnames[4],cex=1.5) + text( 50, 10, data.colnames[5],cex=1.5) + + text( 61, 228, lab("10000",data)); + text(194, 329, lab("01000",data)); + text(321, 245, lab("00100",data)); + text(290, 81, lab("00010",data)); + text(132, 69, lab("00001",data)); + + text(146, 250, lab("11000",data), cex=small) + text(123, 188, lab("10100",data), cex=small) + text(275, 152, lab("10010",data), cex=small) + text(137, 146, lab("10001",data), cex=small) + text(243, 268, lab("01100",data), cex=small) + text(175, 267, lab("01010",data), cex=small) + text(187, 117, lab("01001",data), cex=small) + text(286, 188, lab("00110",data), cex=small) + text(267, 235, lab("00101",data), cex=small) + text(228, 105, lab("00011",data), cex=small) + + text(148, 210, lab("11100",data),cex=small) + text(159, 253, lab("11010",data),cex=small) + text(171, 141, lab("11001",data),cex=small) + text(281, 175, lab("10110",data),cex=small) + text(143, 163, lab("10101",data),cex=small) + text(252, 145, lab("10011",data),cex=small) + text(205, 255, lab("01110",data),cex=small) + text(254, 243, lab("01101",data),cex=small) + text(211, 118, lab("01011",data),cex=small) + text(267, 211, lab("00111",data),cex=small) + + text(170, 231,lab("11110",data),cex=small) + text(158, 169,lab("11101",data),cex=small) + text(212, 139,lab("11011",data),cex=small) + text(263, 180,lab("10111",data),cex=small) + text(239, 232,lab("01111",data),cex=small) + + text(204,190,lab("11111",data)) + } + } + else { + stop(paste("The printing of ",numCircles," circles is not yet supported.")) + } + +} + + +venn <- function(data, + universe=NA, + small=0.7, + showSetLogicLabel=FALSE, + simplify=FALSE, + show.plot=TRUE) +{ + counts <- getVennCounts(data) + + if(show.plot) + drawVennDiagram(data=counts, + small=small, + showSetLogicLabel=showSetLogicLabel, + simplify=simplify + ) + + invisible(counts) +} Added: trunk/gplots/man/venn.Rd =================================================================== --- trunk/gplots/man/venn.Rd (rev 0) +++ trunk/gplots/man/venn.Rd 2008-05-20 00:14:51 UTC (rev 1271) @@ -0,0 +1,78 @@ +\name{venn} +\alias{venn} +\title{Plot a Venn diagram} +\description{ +Plot Venn diagrams for up to 5 sets +} +\usage{ +venn(data, small = 0.7, showSetLogicLabel = FALSE, simplify = FALSE) +} +\arguments{ + \item{data}{data to be plotted (see below)} + \item{small}{Character size of group labels} + \item{showSetLogicLabel}{Logical flag indicating whether the internal + group label should be displayed} + \item{simplify}{Logical flag indicating whether unobserved group + should be omitted.} +} +\details{ + \code{data} should be either a named list of vectors containing + indexes of group members (1, 2, 3,..) , or a data frame containing indicator + variables (TRUE, FALSE, TRUE, ..) for group membership. Group names + will be taken from the component vector or column names. +} +\value{ + A matrix of all possible sets of groups, and the observed numer of + items beloinging to each set of groups is returned invisibly. + The fist column contains observed counts, subsequent columns contain + 0-1 indicators of group membership. +} +\author{Steffen Moeller \email{ste...@gm...}, + with cleanup and packaging by Gregory R. Warnes + \email{gr...@ra...}.} +\examples{ + +## +## Example using a list of item indexes belonging to the +## specified group. +## +A<- 1:20 +B<- 1:20 +C<- 2:20 +D<- 3:21 +input<-list(A,B,C,D) +input + +venn(input) + +## +## Example using a data frame of indicator columns +## +A<- as.logical(rbinom(100, 1, 0.2)) +B<- as.logical(rbinom(100, 1, 0.7)) +C<- as.logical(rbinom(100, 1, 0.2)) +D<- as.logical(rbinom(100, 1, 0.1)) +input<-data.frame(A,B,C,D) +venn(input) + + +## Omit un-observed groupings +tmp <- venn(input, simplify=T) + +## show details +tmp + +## Show internal binary group labels +venn(input, showSetLogicLabel=TRUE) + +## Omit un-observed groupings, and show internal binary group labels +venn(input, simplify=T, showSetLogicLabel=TRUE) + + + + +} +% Add one or more standard keywords, see file 'KEYWORDS' in the +% R documentation directory. +\keyword{ ~kwd1 } +\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wa...@us...> - 2008-05-13 03:16:13
|
Revision: 1270 http://r-gregmisc.svn.sourceforge.net/r-gregmisc/?rev=1270&view=rev Author: warnes Date: 2008-05-12 20:16:08 -0700 (Mon, 12 May 2008) Log Message: ----------- Update NEWS file for 2.4.2 Modified Paths: -------------- trunk/gdata/inst/NEWS trunk/gdata/inst/doc/mapLevels.pdf trunk/gdata/inst/doc/unknown.pdf Modified: trunk/gdata/inst/NEWS =================================================================== --- trunk/gdata/inst/NEWS 2008-05-13 03:09:32 UTC (rev 1269) +++ trunk/gdata/inst/NEWS 2008-05-13 03:16:08 UTC (rev 1270) @@ -1,3 +1,23 @@ +CHANGES IN 2.4.2 (2008-05-11) +----------------------------- + +- Enhancements and bug fixes for read.xls() and xls2csv(): + + - More informative log messages when verbose=TRUE + + - File paths containing spaces or other non-traditional characters + are now properly handled + + - Better error messages, particularly when perl fails to generate + an output .csv file. + + - The 'shortcut' character "~" (meaning user's home directory) is + now properly handled in file paths. + + - XLS files created by OpenOffice are now properly handled. Thanks to + Robert Burns for pointing out the patch + (http://rt.cpan.org/Public/Bug/Display.html?id=7206) + CHANGES IN 2.4.1 (2008-03-24) ----------------------------- Modified: trunk/gdata/inst/doc/mapLevels.pdf =================================================================== (Binary files differ) Modified: trunk/gdata/inst/doc/unknown.pdf =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wa...@us...> - 2008-05-13 03:09:35
|
Revision: 1269 http://r-gregmisc.svn.sourceforge.net/r-gregmisc/?rev=1269&view=rev Author: warnes Date: 2008-05-12 20:09:32 -0700 (Mon, 12 May 2008) Log Message: ----------- Use path.expand() to give proper full path to xls file to be translated by read.xls() Modified Paths: -------------- trunk/gdata/R/read.xls.R Modified: trunk/gdata/R/read.xls.R =================================================================== --- trunk/gdata/R/read.xls.R 2008-05-13 02:55:45 UTC (rev 1268) +++ trunk/gdata/R/read.xls.R 2008-05-13 03:09:32 UTC (rev 1269) @@ -1,4 +1,4 @@ -## $Id$ +## s$Id$ ## Creating a temporary function to quote the string dQuote.ascii <- function(x) paste('"',x,'"',sep='') @@ -86,7 +86,15 @@ if (inherits(con, "connection") && isOpen(con)) close(con) if (file.exists(tfn)) file.remove(tfn) }) + + ## expand file path, translating ~ to user's home directory, etc. + xls <- path.expand(xls) + + + ## translate from xls to csv format (returns csv file name) con <- xls2csv(xls, sheet, verbose=verbose, ..., perl = perl) + + ## load the csv file open(con) tfn <- summary(con)$description if (missing(pattern)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wa...@us...> - 2008-05-13 02:55:47
|
Revision: 1268 http://r-gregmisc.svn.sourceforge.net/r-gregmisc/?rev=1268&view=rev Author: warnes Date: 2008-05-12 19:55:45 -0700 (Mon, 12 May 2008) Log Message: ----------- Modifed read.xls() failed to return the converted data... fixed. Modified Paths: -------------- trunk/gdata/R/read.xls.R Modified: trunk/gdata/R/read.xls.R =================================================================== --- trunk/gdata/R/read.xls.R 2008-05-13 02:47:18 UTC (rev 1267) +++ trunk/gdata/R/read.xls.R 2008-05-13 02:55:45 UTC (rev 1268) @@ -89,13 +89,13 @@ con <- xls2csv(xls, sheet, verbose=verbose, ..., perl = perl) open(con) tfn <- summary(con)$description - if (missing(pattern)) + if (missing(pattern)) { if(verbose) cat("Reading csv file ", dQuote.ascii(tfn), "...\n") else cat("Reading csv file... ") - read.csv(con, ...) + retval <- read.csv(con, ...) cat("Done.\n") } else { @@ -113,8 +113,9 @@ cat("Reading csv file ", dQuote.ascii(tfn), "...\n") else cat("Reading csv file... ") - read.csv(con, skip = idx[1]-1, ...) + retval <- read.csv(con, skip = idx[1]-1, ...) cat("Done.\n") } + retval } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wa...@us...> - 2008-05-13 02:47:26
|
Revision: 1267 http://r-gregmisc.svn.sourceforge.net/r-gregmisc/?rev=1267&view=rev Author: warnes Date: 2008-05-12 19:47:18 -0700 (Mon, 12 May 2008) Log Message: ----------- Correct broken patch for open-office support Modified Paths: -------------- trunk/gdata/inst/perl/Spreadsheet/ParseExcel/Utility.pm Modified: trunk/gdata/inst/perl/Spreadsheet/ParseExcel/Utility.pm =================================================================== --- trunk/gdata/inst/perl/Spreadsheet/ParseExcel/Utility.pm 2008-05-13 02:40:12 UTC (rev 1266) +++ trunk/gdata/inst/perl/Spreadsheet/ParseExcel/Utility.pm 2008-05-13 02:47:18 UTC (rev 1267) @@ -32,11 +32,6 @@ $sFmt = '@' if ($sFmt eq "GENERAL"); #1. Get Condition -if($sFmt=~/^\[([<>=][^\]]+)\](.*)$/) { -$sCond = $1; - - -#1. Get Condition if($sFmt=~/^\[([<>=][^\]]+)\](.*)$/) { $sCond = $1; $sFmt = $2; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wa...@us...> - 2008-05-13 02:40:14
|
Revision: 1266 http://r-gregmisc.svn.sourceforge.net/r-gregmisc/?rev=1266&view=rev Author: warnes Date: 2008-05-12 19:40:12 -0700 (Mon, 12 May 2008) Log Message: ----------- For read.xls() and xls2csv(): - Implement more informative log messages when verbose=TRUE - Quote temporary file name to avoid errors when calling perl to do the work. - Add better error messages, particularly when perl fails to generate an output .csv file. Update version number in DESCRIPTION. Modified Paths: -------------- trunk/gdata/DESCRIPTION trunk/gdata/R/read.xls.R Modified: trunk/gdata/DESCRIPTION =================================================================== --- trunk/gdata/DESCRIPTION 2008-05-12 00:00:56 UTC (rev 1265) +++ trunk/gdata/DESCRIPTION 2008-05-13 02:40:12 UTC (rev 1266) @@ -3,8 +3,8 @@ Description: Various R programming tools for data manipulation Depends: R (>= 2.4.0) Imports: gtools -Version: 2.4.1 -Date: 2008-03-24 +Version: 2.4.2 +Date: 2008-05-12 Author: Gregory R. Warnes and Gregor Gorjanc. Includes R source code and/or documentation contributed by Ben Bolker and Thomas Lumley. Maintainer: Gregory Warnes <gre...@ur...> Modified: trunk/gdata/R/read.xls.R =================================================================== --- trunk/gdata/R/read.xls.R 2008-05-12 00:00:56 UTC (rev 1265) +++ trunk/gdata/R/read.xls.R 2008-05-13 02:40:12 UTC (rev 1266) @@ -1,10 +1,12 @@ -# $Id$ +## $Id$ +## Creating a temporary function to quote the string +dQuote.ascii <- function(x) paste('"',x,'"',sep='') + + xls2csv <- function(xls, sheet = 1, verbose=FALSE, ..., perl="perl") { - # Creating a temporary function to quote the string - dQuote.ascii <- function(x) paste('"',x,'"',sep='') ### # directories @@ -19,10 +21,20 @@ tf <- NULL if (substring(xls, 1, 7) == "http://") { tf <- paste(tempfile(), "xls", sep = ".") - download.file(xls, tf, mode = "wb") + if(verbose) + cat("Downloading", + dQuote.ascii(xls), " to ", + dQuote.ascii(tf), "...\n") + else + cat("Downloading...\n") + download.file(xls, tf, mode = "wb") + cat("Done.\n") xls <- tf } - xls <- dQuote.ascii(xls) # dQuote.ascii in case of spaces in path + + if(file.access(xls, 4)!=0) + stop("Unable to read xls file '", xls, "'." ) + xls2csv <- file.path(perl.dir,'xls2csv.pl') csv <- paste(tempfile(), "csv", sep = ".") # @@ -30,20 +42,39 @@ ### # execution command - cmd <- paste(perl, xls2csv, xls, dQuote.ascii(csv), sheet, sep=" ") + cmd <- paste(perl, xls2csv, dQuote.ascii(xls), dQuote.ascii(csv), + sheet, sep=" ") # ### + if(verbose) + { + cat("\n") + cat("Converting xls file\n") + cat(" ", dQuote.ascii(xls), "\n") + cat("to csv file \n") + cat(" ", dQuote.ascii(csv), "\n") + cat("... \n\n") + } + else + cat("Converting xls file to csv file... ") + ### # do the translation - if(verbose) cat("Executing ", cmd, "... \n") + if(verbose) cat("Executing ", cmd, "... \n\n") # results <- system(cmd, intern=!verbose) # - if (verbose) cat("done.\n") + if (verbose) cat("Done.\n\n") # ### + if(file.access(csv, 4)!=0) + stop("Unable to read translated csv file '", csv, "'." ) + + cat("Done.\n") + + # prepare for cleanup now, in case of error reading file file(csv) } @@ -55,19 +86,35 @@ if (inherits(con, "connection") && isOpen(con)) close(con) if (file.exists(tfn)) file.remove(tfn) }) - con <- xls2csv(xls, sheet, verbose, ..., perl = perl) + con <- xls2csv(xls, sheet, verbose=verbose, ..., perl = perl) open(con) tfn <- summary(con)$description - print(tfn) - if (missing(pattern)) read.csv(con, ...) + if (missing(pattern)) + { + if(verbose) + cat("Reading csv file ", dQuote.ascii(tfn), "...\n") + else + cat("Reading csv file... ") + read.csv(con, ...) + cat("Done.\n") + } else { + cat("Searching for lines containing pattern ", pattern, "... ") idx <- grep(pattern, readLines(con)) if (length(idx) == 0) { warning("pattern not found") return(NULL) } + cat("Done.\n") + seek(con, 0) + + if(verbose) + cat("Reading csv file ", dQuote.ascii(tfn), "...\n") + else + cat("Reading csv file... ") read.csv(con, skip = idx[1]-1, ...) + cat("Done.\n") } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wa...@us...> - 2008-05-12 00:01:06
|
Revision: 1265 http://r-gregmisc.svn.sourceforge.net/r-gregmisc/?rev=1265&view=rev Author: warnes Date: 2008-05-11 17:00:56 -0700 (Sun, 11 May 2008) Log Message: ----------- Patch to correct issue with OpenOffice-created XLS files. Thanks to Robert Burns for pointing out the patch at http://rt.cpan.org/Public/Bug/Display.html?id=7206 Modified Paths: -------------- trunk/gdata/inst/perl/Spreadsheet/ParseExcel/Utility.pm Modified: trunk/gdata/inst/perl/Spreadsheet/ParseExcel/Utility.pm =================================================================== --- trunk/gdata/inst/perl/Spreadsheet/ParseExcel/Utility.pm 2008-05-07 18:59:21 UTC (rev 1264) +++ trunk/gdata/inst/perl/Spreadsheet/ParseExcel/Utility.pm 2008-05-12 00:00:56 UTC (rev 1265) @@ -27,7 +27,16 @@ my $sCond; my $sWkF =''; my $sRes=''; + +# OpenOffice peculiarity? +$sFmt = '@' if ($sFmt eq "GENERAL"); + #1. Get Condition +if($sFmt=~/^\[([<>=][^\]]+)\](.*)$/) { +$sCond = $1; + + +#1. Get Condition if($sFmt=~/^\[([<>=][^\]]+)\](.*)$/) { $sCond = $1; $sFmt = $2; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wa...@us...> - 2008-05-07 18:59:34
|
Revision: 1264 http://r-gregmisc.svn.sourceforge.net/r-gregmisc/?rev=1264&view=rev Author: warnes Date: 2008-05-07 11:59:21 -0700 (Wed, 07 May 2008) Log Message: ----------- Improve performance of bandplot by calculating running standard deviation using caTools::runsd() instead of (ver slow) window() call. In addtion, the standard deviations are now only calculated once, rather than once for each band. Modified Paths: -------------- trunk/gplots/DESCRIPTION trunk/gplots/R/bandplot.R Modified: trunk/gplots/DESCRIPTION =================================================================== --- trunk/gplots/DESCRIPTION 2008-05-07 18:57:29 UTC (rev 1263) +++ trunk/gplots/DESCRIPTION 2008-05-07 18:59:21 UTC (rev 1264) @@ -1,9 +1,9 @@ Package: gplots Title: Various R programming tools for plotting data Description: Various R programming tools for plotting data -Depends: R (>= 1.9.0), gtools, gdata, stats +Depends: R (>= 1.9.0), gtools, gdata, stats, caTools Recommends: datasets -Suggests: gtools, gdata, caTools +Suggests: gtools, gdata Version: 2.6.0 Author: Gregory R. Warnes. Includes R source code and/or documentation contributed by Ben Bolker and Thomas Lumley Modified: trunk/gplots/R/bandplot.R =================================================================== --- trunk/gplots/R/bandplot.R 2008-05-07 18:57:29 UTC (rev 1263) +++ trunk/gplots/R/bandplot.R 2008-05-07 18:59:21 UTC (rev 1264) @@ -4,8 +4,8 @@ ..., add=FALSE, sd=c(-2:2), - sd.col=c("lightblue","blue","red", - "blue","lightblue"), + sd.col=c("magenta","blue","red", + "blue","magenta"), sd.lwd=c(2,2,3,2,2), sd.lty=c(2,1,1,1,2), method="frac", width=1/5, @@ -35,32 +35,22 @@ else mean(x)+sd*sqrt(var(x)) - sdplot <- function(S, COL, LWD, LTY) - { - if(use.runsd) - { - ord <- order(x) - myx <- x[ord] - myy <- y[ord] - sd <- runsd(myy, k=floor(length(x)*width)) - where <- list() - where$x <- myx - where$y <- runmean(myy, k=floor(length(x)*width) ) + S * sd - } - else - where <- wapply(x,y,CL,sd=S,width=width,method=method,n=n) - lines(where,col=COL,lwd=LWD,lty=LTY,...) - where - } + ord <- order(x) + myx <- x[ord] + myy <- y[ord] + sdVec <- runsd(myy, k=floor(length(x)*width)) + meanVec <- runmean(myy, k=floor(length(x)*width) ) stdevs <- list() for( i in 1:length(sd) ) - stdevs[[as.character(sd[i])]] <- sdplot( - sd[i], - COL=sd.col[i], - LWD=sd.lwd[i], - LTY=sd.lty[i] - ) + { + lines(myx, + meanVec + sdVec * sd[i], + col=sd.col[i], + lwd=sd.lwd[i], + lty=sd.lty[i] + ) - invisible( stdevs ) + } + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wa...@us...> - 2008-05-07 18:57:56
|
Revision: 1263 http://r-gregmisc.svn.sourceforge.net/r-gregmisc/?rev=1263&view=rev Author: warnes Date: 2008-05-07 11:57:29 -0700 (Wed, 07 May 2008) Log Message: ----------- Improve performance of plot.lm for large lm objects by using fitted() instead of predict() to get y-hat Modified Paths: -------------- trunk/gplots/R/plot.lm.R Modified: trunk/gplots/R/plot.lm.R =================================================================== --- trunk/gplots/R/plot.lm.R 2008-05-05 20:28:53 UTC (rev 1262) +++ trunk/gplots/R/plot.lm.R 2008-05-07 18:57:29 UTC (rev 1263) @@ -1,6 +1,3 @@ - -##!!! BROKEN !!! - plot.lm2 <- function( x, which = 1:5, @@ -15,7 +12,10 @@ id.n = 3, labels.id = names(residuals(x)), cex.id = 0.75, - band=TRUE,rug=TRUE + band=TRUE, + rug=TRUE, + width=1/10, + max.n=5000 ) { if (!inherits(x, "lm")) @@ -26,7 +26,10 @@ show[which] <- TRUE r <- residuals(x) n <- length(r) - yh <- predict(x) # != fitted() for glm + if(inherits(x,"glm")) + yh <- predict(x) # != fitted() for glm + else + yh <- fitted(x) if (any(show[2:4])) s <- if(inherits(x, "rlm")) x$s else sqrt(deviance(x)/df.residual(x)) if (any(show[2:3])) { @@ -73,8 +76,8 @@ plot(yh, r, xlab = l.fit, ylab = "Residuals", main = main, ylim = ylim, type = "n", ...) panel(yh, r, ...) - if(rug) rug(yh) ## GRW 2001-06-08 - if(band) bandplot(yh,r,add=TRUE) ## GRW 2001-06-08 + if(rug) rug(yh) ## GRW 2001-06-08 + if(band) bandplot(yh,r,add=TRUE,width=width) ## GRW 2001-06-08 if (one.fig) title(sub = sub.caption, ...) mtext(caption[1], 3, 0.25) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wa...@us...> - 2008-05-05 20:29:08
|
Revision: 1262 http://r-gregmisc.svn.sourceforge.net/r-gregmisc/?rev=1262&view=rev Author: warnes Date: 2008-05-05 13:28:53 -0700 (Mon, 05 May 2008) Log Message: ----------- Use caTools's runsd in bandplot for a dramatic speedup for large data Modified Paths: -------------- trunk/gplots/DESCRIPTION trunk/gplots/R/bandplot.R Modified: trunk/gplots/DESCRIPTION =================================================================== --- trunk/gplots/DESCRIPTION 2008-05-05 20:28:00 UTC (rev 1261) +++ trunk/gplots/DESCRIPTION 2008-05-05 20:28:53 UTC (rev 1262) @@ -3,7 +3,7 @@ Description: Various R programming tools for plotting data Depends: R (>= 1.9.0), gtools, gdata, stats Recommends: datasets -Suggests: gtools, gdata +Suggests: gtools, gdata, caTools Version: 2.6.0 Author: Gregory R. Warnes. Includes R source code and/or documentation contributed by Ben Bolker and Thomas Lumley Modified: trunk/gplots/R/bandplot.R =================================================================== --- trunk/gplots/R/bandplot.R 2008-05-05 20:28:00 UTC (rev 1261) +++ trunk/gplots/R/bandplot.R 2008-05-05 20:28:53 UTC (rev 1262) @@ -6,9 +6,10 @@ sd=c(-2:2), sd.col=c("lightblue","blue","red", "blue","lightblue"), - sd.lwd=c(1,2,3,2,1), + sd.lwd=c(2,2,3,2,2), sd.lty=c(2,1,1,1,2), method="frac", width=1/5, + use.runsd=TRUE, n=50 ) { @@ -16,7 +17,6 @@ if(length(sd.col)<length(sd)) sd <-rep(sd.col,length=length(sd)) if(length(sd.lwd)<length(sd)) sd <-rep(sd.lwd,length=length(sd)) if(length(sd.lty)<length(sd)) sd <-rep(sd.lty,length=length(sd)) - if(!add) { m <- match.call(expand.dots = TRUE) @@ -37,7 +37,18 @@ sdplot <- function(S, COL, LWD, LTY) { - where <- wapply(x,y,CL,sd=S,width=width,method=method,n=n) + if(use.runsd) + { + ord <- order(x) + myx <- x[ord] + myy <- y[ord] + sd <- runsd(myy, k=floor(length(x)*width)) + where <- list() + where$x <- myx + where$y <- runmean(myy, k=floor(length(x)*width) ) + S * sd + } + else + where <- wapply(x,y,CL,sd=S,width=width,method=method,n=n) lines(where,col=COL,lwd=LWD,lty=LTY,...) where } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wa...@us...> - 2008-05-05 20:28:10
|
Revision: 1261 http://r-gregmisc.svn.sourceforge.net/r-gregmisc/?rev=1261&view=rev Author: warnes Date: 2008-05-05 13:28:00 -0700 (Mon, 05 May 2008) Log Message: ----------- Add import of gtools::reorder.factor for ballonplot man page Modified Paths: -------------- trunk/gplots/NAMESPACE Modified: trunk/gplots/NAMESPACE =================================================================== --- trunk/gplots/NAMESPACE 2008-05-05 20:27:11 UTC (rev 1260) +++ trunk/gplots/NAMESPACE 2008-05-05 20:28:00 UTC (rev 1261) @@ -31,6 +31,7 @@ importFrom(gtools, invalid) importFrom(gtools, odd) importFrom(gdata, nobs) +importFrom(gdata, reorder.factor) importFrom(stats, reorder) importFrom(stats, na.omit) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wa...@us...> - 2008-05-05 20:27:17
|
Revision: 1260 http://r-gregmisc.svn.sourceforge.net/r-gregmisc/?rev=1260&view=rev Author: warnes Date: 2008-05-05 13:27:11 -0700 (Mon, 05 May 2008) Log Message: ----------- balloonplot: Add option to scale balloons so [min,max]->[0,1] (relative) or so [0,max] <- [0,1] (absolute) Modified Paths: -------------- trunk/gplots/R/balloonplot.R trunk/gplots/man/balloonplot.Rd Modified: trunk/gplots/R/balloonplot.R =================================================================== --- trunk/gplots/R/balloonplot.R 2008-04-12 19:42:16 UTC (rev 1259) +++ trunk/gplots/R/balloonplot.R 2008-05-05 20:27:11 UTC (rev 1260) @@ -39,6 +39,7 @@ label.size=1, label.color=par("fg"), scale.method=c("volume","diameter"), + scale.range=c("absolute","relative"), colsrt=par("srt"), rowsrt=par("srt"), colmar=1, @@ -74,6 +75,7 @@ #### scale.method <- match.arg(scale.method) + scale.range <- match.arg(scale.range) if( any(z < 0, na.rm=TRUE ) ) warning("z value(s) below zero detected.", @@ -150,7 +152,7 @@ #### ## Function to scale circles to fill the containing box #### - myscale <- function(X, min=0, max=16, scale.method) + myscale <- function(X, min=0, max=16, scale.method, scale.range) { if(scale.method=="volume") { @@ -158,12 +160,11 @@ X <- sqrt(X) } - # put min to 0 - X <- (X-min(X, na.rm=TRUE)) - # put max to 1 - X <- X / max(X, na.rm=TRUE ) - # now to [min,max] - X <- min + X * (max - min) + if(scale.range=="relative") + X <- (X-min(X, na.rm=TRUE)) # put min to 0 + X <- X / max(X, na.rm=TRUE ) # put max to 1 + X <- min + X * (max - min) # now to [min,max] + cin.x <- par("cin")[1] cin.y <- par("cin")[2] if(cin.x < cin.y) X <- X * cin.x/cin.y @@ -200,21 +201,21 @@ { xlim=c(-0.5,nlevels(x)+nlabels.y*rowmar-0.25) # extra space on either # end of plot for labels - ylim=c(0.50,nlevels(y)+nlabels.x*colmar+1) # and so dots don't cross + ylim=c(0.50,nlevels(y)+nlabels.x*colmar+1) # and so dots don't cross # into margins, } else { - xlim=c(-0.5,nlevels(x)+nlabels.y*rowmar+1) # extra space on either + xlim=c(-0.5,nlevels(x)+nlabels.y*rowmar+1) # extra space on either # end of plot for labels - ylim=c(0,nlevels(y)+nlabels.x*colmar+1) # and so dots don't cross + ylim=c(0,nlevels(y)+nlabels.x*colmar+1) # and so dots don't cross # into margins, } plot(x=nlabels.y*rowmar+0.25 + as.numeric(ztab$x) - 1, y=nlevels(y) - as.numeric(ztab$y) + 1, - cex=myscale(ztab$z, max=dotsize, scale.method=scale.method), + cex=myscale(ztab$z, max=dotsize, scale.method=scale.method, scale.range=scale.range), pch=dotchar, # plot character col=as.character(ztab$dotcolor), # dot color xlab="", @@ -245,7 +246,6 @@ y=0.25, labels=format(c(sumz, rowsumz), digits=label.digits)[-1], font=1, - cex=par("cex")*0.75, adj=c(0.5,0.0), col=text.color, cex=text.size @@ -259,7 +259,6 @@ y= (ny:1), labels=rowlabs, font=1, - cex=par("cex")*0.75, adj=c(1.0,0.5), col=text.color, cex=text.size @@ -271,7 +270,6 @@ y=0.25, labels=sumz, font=1, - cex=par("cex")*0.75, adj=c(1.0,0.0), col=text.color, cex=text.size @@ -371,7 +369,7 @@ #### ## Column headers for row labels #### - if(missing(ylab)) + if(missing(ylab) || length(ylab)==0) text( x=((1:length(ylabs))-0.5)*rowmar-0.5, y=ny+0.5, @@ -397,7 +395,7 @@ #### ## Row headers for column labels #### - if(missing(xlab)) + if(missing(xlab) || length(xlab)==0) text( x= nlabels.y*rowmar - 0.25 - strwidth(','), y= ny + 0.75 + ((nlabels.x:1) - 1 + .5)*colmar, Modified: trunk/gplots/man/balloonplot.Rd =================================================================== --- trunk/gplots/man/balloonplot.Rd 2008-04-12 19:42:16 UTC (rev 1259) +++ trunk/gplots/man/balloonplot.Rd 2008-05-05 20:27:11 UTC (rev 1260) @@ -26,6 +26,7 @@ label.size=1, label.color=par("fg"), scale.method=c("volume","diameter"), + scale.range=c("absolute","relative"), colsrt=par("srt"), rowsrt=par("srt"), colmar=1, @@ -67,6 +68,11 @@ \item{label.size, label.color}{ Character size and color for value labels.} \item{scale.method}{Method of scaling the sizes of the dot, either "volume" or "diameter". See below.} + \item{scale.range}{Method for scaling original data to compute + circle diameter. \code{scale.range="absolute"} scales the data + relative to 0 (i.e, maps [0,max(z)] --> [0,1]), while + \code{scale.range="relative"} scales the data relative to min(z) + (i.e. maps [min(z), max(z)] --> [0,1]).} \item{rowsrt, colsrt}{Angle of rotation for row and column labels.} \item{rowmar, colmar}{Space allocated for row and column labels. Each unit is the width/height of one cell in the table.} @@ -166,7 +172,7 @@ balloonplot(x=list(Age,Sex), y=list(Class=Class, - Survived=reorder.factor(Survived,c(2,1))), + Survived=gdata::reorder.factor(Survived,c(2,1))), z=Freq, zlab="Number of Passengers", sort=TRUE, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wa...@us...> - 2008-04-12 19:42:23
|
Revision: 1259 http://r-gregmisc.svn.sourceforge.net/r-gregmisc/?rev=1259&view=rev Author: warnes Date: 2008-04-12 12:42:16 -0700 (Sat, 12 Apr 2008) Log Message: ----------- Improve text explanation of how defmacro() and strmacro() differ from function(). Modified Paths: -------------- trunk/gtools/man/defmacro.Rd Modified: trunk/gtools/man/defmacro.Rd =================================================================== --- trunk/gtools/man/defmacro.Rd 2008-04-12 19:19:45 UTC (rev 1258) +++ trunk/gtools/man/defmacro.Rd 2008-04-12 19:42:16 UTC (rev 1259) @@ -22,13 +22,13 @@ given in \code{expr}, with formal arguments given by the other elements of the argument list. - A macro is similar to a function definition, the arguments are - handled. In a function, formal arguments are simply variables that - contains the result of evaluating the expressions provided to the - function call. In contrast, macros actually modify the macro body by - \code{replacing} each formal argument by the expression - (\code{defmacro}) or string (\code{strmacro}) provided to the macro - call. + A macro is similar to a function definition except for handling of + formal arguments. In a function, formal arguments are simply + variables that contains the result of evaluating the expressions + provided to the function call. In contrast, macros actually modify + the macro body by \emph{replacing} each formal argument by the + expression (\code{defmacro}) or string (\code{strmacro}) provided to + the macro call. For \code{defmacro}, the special argument name \code{DOTS} will be replaced by \code{...} in the formal argument list of the macro so This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wa...@us...> - 2008-04-12 19:19:49
|
Revision: 1258 http://r-gregmisc.svn.sourceforge.net/r-gregmisc/?rev=1258&view=rev Author: warnes Date: 2008-04-12 12:19:45 -0700 (Sat, 12 Apr 2008) Log Message: ----------- assert() is now deprecated in favor of base::stopifnot() Modified Paths: -------------- trunk/gtools/NEWS Added Paths: ----------- trunk/gtools/man/assert-deprecated.R trunk/gtools/man/gtools-deprecated.Rd Removed Paths: ------------- trunk/gtools/man/assert.Rd Modified: trunk/gtools/NEWS =================================================================== --- trunk/gtools/NEWS 2008-04-12 19:19:05 UTC (rev 1257) +++ trunk/gtools/NEWS 2008-04-12 19:19:45 UTC (rev 1258) @@ -1,3 +1,9 @@ +gtools SVN VERSION $Id$ +----------------------- + +- Modify odd() and even() to use modulus operator instead of division. + (Doesn't seem to change the results, but looks more elegant!) + gtools 2.4.0 ------------ Copied: trunk/gtools/man/assert-deprecated.R (from rev 1256, trunk/gtools/man/assert.Rd) =================================================================== --- trunk/gtools/man/assert-deprecated.R (rev 0) +++ trunk/gtools/man/assert-deprecated.R 2008-04-12 19:19:45 UTC (rev 1258) @@ -0,0 +1,49 @@ +\name{assert-deprecated} +\alias{assert-deprecated} +\alias{assert} +\title{DEPRECATED: Generate an error if an expression is not true.} +\description{ + Generate an error if an expression is not true. +} +\note{ + This function is deprecated in favor of \code{\link[base]{stopifnot}} +} +\usage{ +assert(FLAG) +} +\arguments{ + \item{FLAG}{ Expression that should evaluate to a boolean vector} +} +\details{ + Assert generate an error if its aregument does not evaluate to + boolean (vector) containing only \code{TRUE} values. This is useful + for defensinve programming as it provides a mechanism for checking + that certain facts, the 'assertions', do in fact hold. Checking of + 'assertions' is an important tool in the development of robust program + code. +} +\value{ + None. Evaluated only for its side effect. +} +\author{Gregory R. Warnes \email{wa...@bs...} } +\seealso{ + \code{\link[base]{stopifnot}}, \code{\link[base]{stop}}, + \code{\link[base]{warning}} +} +\examples{ + +## Trivial example +posSqrt <- function(x) + { + assert(x>=0) + sqrt(x) + } + +posSqrt(1:10) # works fine, no messages +\dontrun{ +posSqrt(-5:5) # generates an error, since the asssertion is not met +} + + +} +\keyword{programming} Deleted: trunk/gtools/man/assert.Rd =================================================================== --- trunk/gtools/man/assert.Rd 2008-04-12 19:19:05 UTC (rev 1257) +++ trunk/gtools/man/assert.Rd 2008-04-12 19:19:45 UTC (rev 1258) @@ -1,42 +0,0 @@ -\name{assert} -\alias{assert} -\title{Generate an error if an expression is not true.} -\description{ - Generate an error if an expression is not true. -} -\usage{ -assert(FLAG) -} -\arguments{ - \item{FLAG}{ Expression that should evaluate to a boolean vector} -} -\details{ - Assert generate an error if its aregument does not evaluate to - boolean (vector) containing only \code{TRUE} values. This is useful - for defensinve programming as it provides a mechanism for checking - that certain facts, the 'assertions', do in fact hold. Checking of - 'assertions' is an important tool in the development of robust program - code. -} -\value{ - None. Evaluated only for its side effect. -} -\author{Gregory R. Warnes \email{wa...@bs...} } -\seealso{ \code{\link[base]{stop}}, \code{\link[base]{warning}} } -\examples{ - -## Trivial example -posSqrt <- function(x) - { - assert(x>=0) - sqrt(x) - } - -posSqrt(1:10) # works fine, no messages -\dontrun{ -posSqrt(-5:5) # generates an error, since the asssertion is not met -} - - -} -\keyword{programming} Added: trunk/gtools/man/gtools-deprecated.Rd =================================================================== --- trunk/gtools/man/gtools-deprecated.Rd (rev 0) +++ trunk/gtools/man/gtools-deprecated.Rd 2008-04-12 19:19:45 UTC (rev 1258) @@ -0,0 +1,24 @@ +\name{gtools-deprecated} +\alias{gtools-deprecated} +\alias{assert} +\title{Deprecated Functions in the gtools package} +\description{ + These functions are provided for compatibility with older versions of + gtools, and may be defunct as soon as the next release. +} +\usage{ +assert(FLAG) +} +\arguments{ + \item{FLAG}{ Expression that should evaluate to a boolean vector} +} +\details{ + The original help page for these functions is often + available at \code{help("oldName-deprecated")} (note the quotes). + + \code{assert} is a deprecated synonym for \code{\link[base]{stopifnot}}. +} +\seealso{ + \code{\link{Deprecated}}, \code{\link{gtools-defunct}} +} +\keyword{misc} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wa...@us...> - 2008-04-12 19:19:08
|
Revision: 1257 http://r-gregmisc.svn.sourceforge.net/r-gregmisc/?rev=1257&view=rev Author: warnes Date: 2008-04-12 12:19:05 -0700 (Sat, 12 Apr 2008) Log Message: ----------- Rename 'assert.R' to 'deprecated.R'. Added Paths: ----------- trunk/gtools/R/deprecated.R Removed Paths: ------------- trunk/gtools/R/assert.R Deleted: trunk/gtools/R/assert.R =================================================================== --- trunk/gtools/R/assert.R 2008-04-12 19:14:06 UTC (rev 1256) +++ trunk/gtools/R/assert.R 2008-04-12 19:19:05 UTC (rev 1257) @@ -1,6 +0,0 @@ -## useful function, raises an error if the FLAG expression is FALSE -assert <- function( FLAG ) - { - .Deprecated(new="stopifnot", package="base") - stopifnot(FLAG) - } Copied: trunk/gtools/R/deprecated.R (from rev 1256, trunk/gtools/R/assert.R) =================================================================== --- trunk/gtools/R/deprecated.R (rev 0) +++ trunk/gtools/R/deprecated.R 2008-04-12 19:19:05 UTC (rev 1257) @@ -0,0 +1,6 @@ +## useful function, raises an error if the FLAG expression is FALSE +assert <- function( FLAG ) + { + .Deprecated(new="stopifnot", package="base") + stopifnot(FLAG) + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wa...@us...> - 2008-04-12 19:14:11
|
Revision: 1256 http://r-gregmisc.svn.sourceforge.net/r-gregmisc/?rev=1256&view=rev Author: warnes Date: 2008-04-12 12:14:06 -0700 (Sat, 12 Apr 2008) Log Message: ----------- Assert is now deprecated in favor of base::stopifnot(), so add call to .Deprecated() to inform the user. Modified Paths: -------------- trunk/gtools/R/assert.R Modified: trunk/gtools/R/assert.R =================================================================== --- trunk/gtools/R/assert.R 2008-04-10 14:05:37 UTC (rev 1255) +++ trunk/gtools/R/assert.R 2008-04-12 19:14:06 UTC (rev 1256) @@ -1,6 +1,6 @@ ## useful function, raises an error if the FLAG expression is FALSE assert <- function( FLAG ) { - if(!all(FLAG)) - stop("Failed Assertion") + .Deprecated(new="stopifnot", package="base") + stopifnot(FLAG) } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wa...@us...> - 2008-04-10 14:05:44
|
Revision: 1255 http://r-gregmisc.svn.sourceforge.net/r-gregmisc/?rev=1255&view=rev Author: warnes Date: 2008-04-10 07:05:37 -0700 (Thu, 10 Apr 2008) Log Message: ----------- Improve languages a bit Modified Paths: -------------- trunk/gmodels/man/ci.Rd Modified: trunk/gmodels/man/ci.Rd =================================================================== --- trunk/gmodels/man/ci.Rd 2008-04-07 17:09:41 UTC (rev 1254) +++ trunk/gmodels/man/ci.Rd 2008-04-10 14:05:37 UTC (rev 1255) @@ -11,8 +11,7 @@ \description{ Compute and display confidence intervals for model estimates. Methods are provided for the mean of a numeric vector \code{ci.default}, the probability of a binomial vector - \code{ci.binom}, and for \code{lm}, \code{lme}, and \code{lmer} objects are - provided. } + \code{ci.binom}, and for \code{lm}, \code{lme}, and \code{lmer} objects. } \synopsis{ ci(x, confidence = 0.95, alpha = 1 - confidence,...) \method{ci}{default}(x, confidence = 0.95, alpha = 1 - confidence, na.rm=FALSE)...) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wa...@us...> - 2008-04-07 17:28:03
|
Revision: 1254 http://r-gregmisc.svn.sourceforge.net/r-gregmisc/?rev=1254&view=rev Author: warnes Date: 2008-04-07 10:09:41 -0700 (Mon, 07 Apr 2008) Log Message: ----------- Fix typo in barplot2() man page Modified Paths: -------------- trunk/gplots/man/barplot2.Rd Modified: trunk/gplots/man/barplot2.Rd =================================================================== --- trunk/gplots/man/barplot2.Rd 2008-04-07 16:52:50 UTC (rev 1253) +++ trunk/gplots/man/barplot2.Rd 2008-04-07 17:09:41 UTC (rev 1254) @@ -213,7 +213,7 @@ midpoints of each \emph{group} of bars, see example. } \author{Original barplot() by R-Core. Enhancements by Marc - Schwartz \email{mar...@co...} + Schwartz \email{marc\_sc...@co...} } \note{ Prior to \R 1.6.0, \code{barplot} behaved as if \code{axis.lty = 1}, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wa...@us...> - 2008-04-07 16:52:53
|
Revision: 1253 http://r-gregmisc.svn.sourceforge.net/r-gregmisc/?rev=1253&view=rev Author: warnes Date: 2008-04-07 09:52:50 -0700 (Mon, 07 Apr 2008) Log Message: ----------- Updates for gplots 2.6.0 Modified Paths: -------------- trunk/gplots/DESCRIPTION trunk/gplots/inst/ChangeLog trunk/gplots/inst/NEWS Modified: trunk/gplots/DESCRIPTION =================================================================== --- trunk/gplots/DESCRIPTION 2008-04-07 16:47:30 UTC (rev 1252) +++ trunk/gplots/DESCRIPTION 2008-04-07 16:52:50 UTC (rev 1253) @@ -4,7 +4,7 @@ Depends: R (>= 1.9.0), gtools, gdata, stats Recommends: datasets Suggests: gtools, gdata -Version: 2.5.0 +Version: 2.6.0 Author: Gregory R. Warnes. Includes R source code and/or documentation contributed by Ben Bolker and Thomas Lumley Maintainer: Gregory R. Warnes <wa...@bs...> Modified: trunk/gplots/inst/ChangeLog =================================================================== --- trunk/gplots/inst/ChangeLog 2008-04-07 16:47:30 UTC (rev 1252) +++ trunk/gplots/inst/ChangeLog 2008-04-07 16:52:50 UTC (rev 1253) @@ -1,3 +1,51 @@ +2008-04-07 16:47 warnes + + * [r1252] R/heatmap.2.R, man/heatmap.2.Rd: Add ability to control + location of individual heatmap.2 components + +2008-03-27 22:36 warnes + + * [r1251] R/heatmap.2.R: Fix bug in handling rowsep, per suggestion + by Steven Paugh + +2008-01-04 18:59 warnes + + * [r1238] man/overplot.Rd: Fix examples for overplot() + +2008-01-02 16:58 warnes + + * [r1237] man/barplot2.Rd: Update Marc's email address + +2007-12-20 22:48 warnes + + * [r1235] man/heatmap.2.Rd: Two letter clarification of help text + for heatmap.2() + +2007-12-20 22:24 warnes + + * [r1234] man/ooplot.Rd: Restore plot layout at end of ooplot() + example + +2007-11-06 16:24 warnes + + * [r1222] man/hist2d.Rd: Remove extraneous closing brace in the + hist2d documentation file + +2007-11-05 15:32 warnes + + * [r1221] inst/NEWS: Fix typo in NEWS: col2hex() is the new + function, not col2rgb() which is part of grDevices + +2007-11-02 19:32 warnes + + * [r1219] DESCRIPTION, NAMESPACE, inst/ChangeLog, inst/NEWS: + Updates for gplots 2.5.0 + +2007-11-02 19:32 warnes + + * [r1218] tests/heatmap2Test.Rout.save: Update saved test output + due to changes in how R reports warnings + 2007-11-02 18:22 warnes * [r1217] ChangeLog, NEWS: Create soft links of gmodels/ChangeLog Modified: trunk/gplots/inst/NEWS =================================================================== --- trunk/gplots/inst/NEWS 2008-04-07 16:47:30 UTC (rev 1252) +++ trunk/gplots/inst/NEWS 2008-04-07 16:52:50 UTC (rev 1253) @@ -1,3 +1,23 @@ +Release 2.6.0 - 2008-04-07 +-------------------------- + +New Features: + +- heatmap() now allows control of the location of individual plot components + (e.g. color key) + +Bug Fixes: + +- Fix bug in handling rowsep, per suggestion by Steven Paugh + +- Fix examples for overplot() + +- Two letter clarification of help text for heatmap.2() + +- Restore plot layout settings to default state at end of ooplot() example + +- Various typo fixes + Release 2.5.0 - 2007-11-02 -------------------------- This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wa...@us...> - 2008-04-07 16:47:38
|
Revision: 1252 http://r-gregmisc.svn.sourceforge.net/r-gregmisc/?rev=1252&view=rev Author: warnes Date: 2008-04-07 09:47:30 -0700 (Mon, 07 Apr 2008) Log Message: ----------- Add ability to control location of individual heatmap.2 components Modified Paths: -------------- trunk/gplots/R/heatmap.2.R trunk/gplots/man/heatmap.2.Rd Modified: trunk/gplots/R/heatmap.2.R =================================================================== --- trunk/gplots/R/heatmap.2.R 2008-03-27 22:36:13 UTC (rev 1251) +++ trunk/gplots/R/heatmap.2.R 2008-04-07 16:47:30 UTC (rev 1252) @@ -62,6 +62,11 @@ xlab = NULL, ylab = NULL, + # plot layout + lmat = NULL, + lhei = NULL, + lwid = NULL, + # extras ... ) @@ -270,23 +275,45 @@ x[] <- ifelse(x<min.breaks, min.breaks, x) x[] <- ifelse(x>max.breaks, max.breaks, x) + + + + + ## Calculate the plot layout - lmat <- rbind(4:3, 2:1) - lhei <- lwid <- c(keysize, 4) - if(!missing(ColSideColors)) { ## add middle row to layout - if(!is.character(ColSideColors) || length(ColSideColors) != nc) - stop("'ColSideColors' must be a character vector of length ncol(x)") - lmat <- rbind(lmat[1,]+1, c(NA,1), lmat[2,]+1) - lhei <- c(lhei[1], 0.2, lhei[2]) - } - if(!missing(RowSideColors)) { ## add middle column to layout - if(!is.character(RowSideColors) || length(RowSideColors) != nr) - stop("'RowSideColors' must be a character vector of length nrow(x)") - lmat <- cbind(lmat[,1]+1, c(rep(NA, nrow(lmat)-1), 1), lmat[,2]+1) - lwid <- c(lwid[1], 0.2, lwid[2]) - } - lmat[is.na(lmat)] <- 0 + if( missing(lhei) || is.null(lhei) ) + lhei <- c(keysize, 4) + if( missing(lwid) || is.null(lwid) ) + lwid <- c(keysize, 4) + + if( missing(lmat) || is.null(lmat) ) + { + lmat <- rbind(4:3, 2:1) + + if(!missing(ColSideColors)) { ## add middle row to layout + if(!is.character(ColSideColors) || length(ColSideColors) != nc) + stop("'ColSideColors' must be a character vector of length ncol(x)") + lmat <- rbind(lmat[1,]+1, c(NA,1), lmat[2,]+1) + lhei <- c(lhei[1], 0.2, lhei[2]) + } + + if(!missing(RowSideColors)) { ## add middle column to layout + if(!is.character(RowSideColors) || length(RowSideColors) != nr) + stop("'RowSideColors' must be a character vector of length nrow(x)") + lmat <- cbind(lmat[,1]+1, c(rep(NA, nrow(lmat)-1), 1), lmat[,2]+1) + lwid <- c(lwid[1], 0.2, lwid[2]) + } + + lmat[is.na(lmat)] <- 0 + } + + if(length(lhei) != nrow(lmat)) + stop("lhei must have length = nrow(lmat) = ", nrow(lmat)) + + if(length(lwid) != ncol(lmat)) + stop("lwid must have length = ncol(lmat) =", ncol(lmat)) + ## Graphics `output' ----------------------- op <- par(no.readonly = TRUE) Modified: trunk/gplots/man/heatmap.2.Rd =================================================================== --- trunk/gplots/man/heatmap.2.Rd 2008-03-27 22:36:13 UTC (rev 1251) +++ trunk/gplots/man/heatmap.2.Rd 2008-04-07 16:47:30 UTC (rev 1252) @@ -71,6 +71,11 @@ xlab = NULL, ylab = NULL, + # plot layout + lmat = NULL, + lhei = NULL, + lwid = NULL, + # extras ... ) @@ -180,6 +185,9 @@ 0.25.} % plot labels \item{main, xlab, ylab}{main, x- and y-axis titles; defaults to none.} + % figure layout + \item{lmat, lhei, lwid}{visual layout: position matrix, column height, + column width. See below for details} \item{...}{additional arguments passed on to \code{\link{image}} } % } \details{ @@ -209,7 +217,18 @@ as the \pkg{RColorBrewer} package, \url{http://cran.r-project.org/src/contrib/PACKAGES.html#RColorBrewer} to select better colors. - + + By default four components will be displayed in the plot. At the top + left is the color key, top right is the column dendogram, bottom left + is the row dendogram, bottom right is the image plot. When + RowSideColor or ColSideColor are provided, an additional row or column + is inserted in the appropriate location. This layout can be + overriden by specifiying appropriate values for \code{lmat}, + \code{lwid}, and \code{lhei}. \code{lmat} controls the relative + postition of each element, while \code{lwid} controls the column + width, and \code{lhei} controls the row height. See the help page for + \code{\link[graphics]{layout}} for details on how to use these + arguments. } \note{ The original rows and columns are reordered \emph{in any case} to @@ -276,7 +295,12 @@ # without reorder heatmap.2(Ca, Rowv=FALSE, symm=TRUE, margin=c(6, 6), trace="none" ) + ## Place the color key below the image plot + heatmap.2(x, lmat=rbind( c(0, 3), c(2,1), c(0,4) ), lhei=c(1.5, 4, 2 ) ) + ## Place the color key to the top right of the image plot + heatmap.2(x, lmat=rbind( c(0, 3, 4), c(2,1,0 ) ), lwid=c(1.5, 4, 2 ) ) + ## For variable clustering, rather use distance based on cor(): data(USJudgeRatings) symnum( cU <- cor(USJudgeRatings) ) @@ -312,5 +336,6 @@ main="SpikeIn@pm Fold Changes\nrelative to 12.50 sample", xlab="Relative Concentration", ylab="Probeset") } + } \keyword{hplot} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wa...@us...> - 2008-03-27 22:36:14
|
Revision: 1251 http://r-gregmisc.svn.sourceforge.net/r-gregmisc/?rev=1251&view=rev Author: warnes Date: 2008-03-27 15:36:13 -0700 (Thu, 27 Mar 2008) Log Message: ----------- Fix bug in handling rowsep, per suggestion by Steven Paugh Modified Paths: -------------- trunk/gplots/R/heatmap.2.R Modified: trunk/gplots/R/heatmap.2.R =================================================================== --- trunk/gplots/R/heatmap.2.R 2008-03-25 01:01:53 UTC (rev 1250) +++ trunk/gplots/R/heatmap.2.R 2008-03-27 22:36:13 UTC (rev 1251) @@ -348,7 +348,7 @@ if(!missing(rowsep)) for(rsep in rowsep) rect(xleft =0, ybottom= (ncol(x)+1-rsep)-0.5, - xright=ncol(x)+1, ytop = (ncol(x)+1-rsep)-0.5 - sepwidth[2], + xright=nrow(x)+1, ytop = (ncol(x)+1-rsep)-0.5 - sepwidth[2], lty=1, lwd=1, col=sepcolor, border=sepcolor) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wa...@us...> - 2008-03-25 01:01:59
|
Revision: 1250 http://r-gregmisc.svn.sourceforge.net/r-gregmisc/?rev=1250&view=rev Author: warnes Date: 2008-03-24 18:01:53 -0700 (Mon, 24 Mar 2008) Log Message: ----------- Update for version 2.4.1 Modified Paths: -------------- trunk/gdata/DESCRIPTION trunk/gdata/inst/NEWS trunk/gdata/inst/doc/mapLevels.pdf trunk/gdata/inst/doc/unknown.pdf Modified: trunk/gdata/DESCRIPTION =================================================================== --- trunk/gdata/DESCRIPTION 2008-03-25 00:57:15 UTC (rev 1249) +++ trunk/gdata/DESCRIPTION 2008-03-25 01:01:53 UTC (rev 1250) @@ -3,8 +3,8 @@ Description: Various R programming tools for data manipulation Depends: R (>= 2.4.0) Imports: gtools -Version: 2.4.0 -Date: 2008-01-30 +Version: 2.4.1 +Date: 2008-03-24 Author: Gregory R. Warnes and Gregor Gorjanc. Includes R source code and/or documentation contributed by Ben Bolker and Thomas Lumley. Maintainer: Gregory Warnes <gre...@ur...> Modified: trunk/gdata/inst/NEWS =================================================================== --- trunk/gdata/inst/NEWS 2008-03-25 00:57:15 UTC (rev 1249) +++ trunk/gdata/inst/NEWS 2008-03-25 01:01:53 UTC (rev 1250) @@ -1,3 +1,16 @@ +CHANGES IN 2.4.1 (2008-03-24) +----------------------------- + +- Update perl libraries needed by xls2csv() and read.xls() + to latest available versions on CRAN. + +- Add read.xls() to exported function list + +- Correct iris.xls example file. It didn't contain the complete + & properly formatted iris data set. Fixed. + +- Fix typo in win32 example for read.xls() + CHANGES IN 2.4.0 (2008-01-30) ----------------------------- Modified: trunk/gdata/inst/doc/mapLevels.pdf =================================================================== (Binary files differ) Modified: trunk/gdata/inst/doc/unknown.pdf =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wa...@us...> - 2008-03-25 00:57:17
|
Revision: 1249 http://r-gregmisc.svn.sourceforge.net/r-gregmisc/?rev=1249&view=rev Author: warnes Date: 2008-03-24 17:57:15 -0700 (Mon, 24 Mar 2008) Log Message: ----------- Example iris.xls file didn't complete & properly formatted iris data set. Fixed. Added Paths: ----------- trunk/gdata/inst/xls/iris.xls Removed Paths: ------------- trunk/gdata/inst/xls/iris.xls Deleted: trunk/gdata/inst/xls/iris.xls =================================================================== --- trunk/gdata/inst/xls/iris.xls 2008-03-25 00:51:31 UTC (rev 1248) +++ trunk/gdata/inst/xls/iris.xls 2008-03-25 00:57:15 UTC (rev 1249) @@ -1,173 +0,0 @@ -\xD0\xCFࡱ\xE1 |
From: <wa...@us...> - 2008-03-24 23:56:31
|
Revision: 1247 http://r-gregmisc.svn.sourceforge.net/r-gregmisc/?rev=1247&view=rev Author: warnes Date: 2008-03-24 16:56:30 -0700 (Mon, 24 Mar 2008) Log Message: ----------- Fix typo in win32 example for read.xls() Modified Paths: -------------- trunk/gdata/man/read.xls.Rd Modified: trunk/gdata/man/read.xls.Rd =================================================================== --- trunk/gdata/man/read.xls.Rd 2008-03-11 20:22:14 UTC (rev 1246) +++ trunk/gdata/man/read.xls.Rd 2008-03-24 23:56:30 UTC (rev 1247) @@ -54,7 +54,7 @@ \dontrun{ # Example specifying exact Perl path for default MS-Windows install of # ActiveState perl - iris <- read.xls(xlsfile, perl="C:\\perl\bin\perl.exe") + iris <- read.xls(xlsfile, perl="C:/perl/bin/perl.exe") # Example specifying exact Perl path for Unix systems iris <- read.xls(xlsfile, perl="/usr/bin/perl") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wa...@us...> - 2008-03-11 20:22:20
|
Revision: 1246 http://r-gregmisc.svn.sourceforge.net/r-gregmisc/?rev=1246&view=rev Author: warnes Date: 2008-03-11 13:22:14 -0700 (Tue, 11 Mar 2008) Log Message: ----------- Add xls2csv to exported function list Modified Paths: -------------- trunk/gdata/NAMESPACE Modified: trunk/gdata/NAMESPACE =================================================================== --- trunk/gdata/NAMESPACE 2008-02-29 15:40:11 UTC (rev 1245) +++ trunk/gdata/NAMESPACE 2008-03-11 20:22:14 UTC (rev 1246) @@ -26,6 +26,7 @@ upperTriangle, "upperTriangle<-", write.fwf, + xls2csv, ## mapLevels stuff mapLevels, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |