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.
|