Newer
Older
Laura A DeCicco
committed
#' renameColumns
#'
#' Rename columns coming back from NWIS data retrievals
#'
#' @param rawData dataframe returned from retrieval functions
#' @keywords data import USGS web service
#' @return rawData dataframe with improved column names
#' @export
#' @examples
#' # This example requires an internet connection to run
#' rawData <- getNWISdvData(siteNumber,c("00010","00060","00300"),
#' "2001-01-01","2002-01-01",statCd=c("00001","00003"))
Laura A DeCicco
committed
#' today <- as.character(Sys.Date())
#' rawData2 <- getNWISunitData(siteNumber,c("00010","00060"),today,today)
Laura A DeCicco
committed
#' rawData2 <- renameColumns(rawData2)
Laura A DeCicco
committed
renameColumns <- function(rawData){
columnNames <- names(rawData)
dataCols <- columnNames["X" == substring(columnNames, 1, 1)]
dataCol_cds <- dataCols["cd" == substring(dataCols, nchar(dataCols)-1, nchar(dataCols))]
dataCol_names <- dataCols[!(dataCols %in% dataCol_cds)]
pCodes <- sapply(strsplit(dataCol_names, "_"), function(x) x[2])
statCd <- sapply(strsplit(dataCol_names, "_"), function(x) x[3])
pcodeINFO <- getNWISPcodeInfo(pCodes,interactive=FALSE)
Laura A DeCicco
committed
multipleCodes <- anyDuplicated(pCodes)
statCd <- sub("00001", "_Max", statCd)
statCd <- sub("00002", "_Min", statCd)
statCd <- sub("00003", "", statCd) # Leave mean blank
statCd <- sub("00011", "", statCd) # Also leaving blank
DDnum <- sapply(strsplit(dataCol_names, "_"), function(x) x[1])
DDnum <- gsub("X","",DDnum)
if (!any(duplicated(pCodes))){
Laura A DeCicco
committed
dataColNames <- pcodeINFO$parameter_nm[which(pcodeINFO$parameter_cd %in% pCodes)]
# dataColNames <- pcodeINFO$srsname[which(pcodeINFO$parameter_cd %in% pCodes)]
Laura A DeCicco
committed
dataColNames <- paste(dataColNames,statCd,sep="")
} else {
dataColNames <- rep(NA,length(dataCol_names))
for (i in 1:length(dataCol_names)){
Laura A DeCicco
committed
dataColNames[i] <- pcodeINFO$parameter_nm[which(pcodeINFO$parameter_cd %in% pCodes[i])]
# dataColNames[i] <- pcodeINFO$srsname[which(pcodeINFO$parameter_cd %in% pCodes[i])]
Laura A DeCicco
committed
if((!(pCodes[i] %in% duplicated(pCodes))) && (pCodes[i] != pCodes[anyDuplicated(pCodes)])){
dataColNames[i] <- paste(dataColNames[i],statCd[i],sep="")
} else {
dataColNames[i] <- paste(dataColNames[i],statCd[i],"_",DDnum[i],sep="")
}
}
}
dataColCDS <- paste(dataColNames, "_cd")
columnNames[which(columnNames %in% dataCol_names)] <- dataColNames
columnNames[which(columnNames %in% dataCol_cds)] <- dataColCDS
columnNames <- gsub("[$,. ]","_",columnNames)
columnNames <- gsub("__","_",columnNames)
Laura A DeCicco
committed
names(rawData) <- columnNames
return(rawData)
}