[R-gregmisc-users] SF.net SVN: r-gregmisc:[1581] trunk/SASxport/R/makeSASNames.R
Brought to you by:
warnes
From: <wa...@us...> - 2012-06-28 02:12:39
|
Revision: 1581 http://r-gregmisc.svn.sourceforge.net/r-gregmisc/?rev=1581&view=rev Author: warnes Date: 2012-06-28 02:12:32 +0000 (Thu, 28 Jun 2012) Log Message: ----------- Fixed bug when only some names are duplicated. Modified Paths: -------------- trunk/SASxport/R/makeSASNames.R Modified: trunk/SASxport/R/makeSASNames.R =================================================================== --- trunk/SASxport/R/makeSASNames.R 2012-06-28 01:42:52 UTC (rev 1580) +++ trunk/SASxport/R/makeSASNames.R 2012-06-28 02:12:32 UTC (rev 1581) @@ -1,4 +1,4 @@ -makeSASNames <- function(names, nchar=8, maxPasses=10) +makeSASNames <- function(names, nchar=8, maxPasses=10, quiet=FALSE) { ## This function takes a vector of potential SAS dataset or ## variable names and converts them into *unique* 8-character @@ -12,7 +12,8 @@ if (any(tooLong)) { shortNames <- substr(as.character(names), 1, nchar) - warning("Truncated ", sum(tooLong), " long names to 8 characters.") + if(!quiet) + warning("Truncated ", sum(tooLong), " long names to 8 characters.") } else shortNames <- names @@ -26,7 +27,7 @@ { passes <- passes+1 dups <- duplicated(varNames) - repeatCount <- table(varNames[dups]) + repeatCount <- table(varNames)-1 digitChars <- nchar(as.character(repeatCount))+1 names(digitChars) <- names(repeatCount) newNames <- make.names(substr(varNames, 1, nchar-digitChars[varNames]), unique=TRUE) @@ -39,7 +40,7 @@ if(any(duplicated(varNames))) stop("Unable to make all names unique after ", passes, " passes.") - if(any(dups)) + if(any(dups) && !quiet) warning("Made ",sum(dups)," duplicate names unique.") varNames This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |