[R-gregmisc-users] SF.net SVN: r-gregmisc:[1669] trunk/SASxport/R/write.xport.R
Brought to you by:
warnes
From: <wa...@us...> - 2013-06-14 15:13:50
|
Revision: 1669 http://sourceforge.net/p/r-gregmisc/code/1669 Author: warnes Date: 2013-06-14 15:13:47 +0000 (Fri, 14 Jun 2013) Log Message: ----------- Properly handle empty datasets Modified Paths: -------------- trunk/SASxport/R/write.xport.R Modified: trunk/SASxport/R/write.xport.R =================================================================== --- trunk/SASxport/R/write.xport.R 2013-06-14 03:10:06 UTC (rev 1668) +++ trunk/SASxport/R/write.xport.R 2013-06-14 15:13:47 UTC (rev 1669) @@ -152,7 +152,9 @@ colnames(dfList[[i]]) <- colnames(df) <- varNames <- makeSASNames(colnames(df)) - offsetTable <- data.frame("name"=varNames, "len"=NA, "offset"=NA ) + offsetTable <- data.frame("name"=varNames, + "len"=rep(NA, length(varNames)), + "offset"=rep(NA, length(varNames)) ) rownames(offsetTable) <- offsetTable[,"name"] dfLabel <- label(df, default="" ) @@ -239,22 +241,25 @@ scat("Write data ... "); spaceUsed <- 0 - for(i in 1:nrow(df) ) - for(j in 1:ncol(df) ) + if(nrow(df)>0) { - val <- df[i,j] - valLen <- offsetTable[j,"len"] + for(i in 1:nrow(df) ) + for(j in 1:ncol(df) ) + { + val <- df[i,j] + valLen <- offsetTable[j,"len"] + + scat("i=", i, " j=", j, " value=", val, " len=", valLen, ""); + if(is.character( val )) + { + out(xport.character(val, width=valLen ) ) + } + else + out( xport.numeric( val ) ) - scat("i=", i, " j=", j, " value=", val, " len=", valLen, ""); - if(is.character( val )) - { - out(xport.character(val, width=valLen ) ) + spaceUsed <- spaceUsed + valLen } - else - out( xport.numeric( val ) ) - - spaceUsed <- spaceUsed + valLen - } + } fillSize <- 80 - (spaceUsed %% 80) if(fillSize==80) fillSize <- 0 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |