khobson@fd9ns01.okladot.state.ok.us
2005-Jun-23 13:09 UTC
[R] Stop Warnings for Invalid Factor Level, NAs generated?
How can I stop the following warning from occuring? invalid factor level, NAs generated in: "[<-.factor"(`*tmp*`, iseq, value structure(1, .Label = "12", class = "factor")) The Label messages are for "5", "8", "12" and "46". I want the NAs to be generated as needed. Is this causing R to slow down by generating the warning messages? There are over 50. I loop through up to 10 datasets and append one row from each to create a summary dataset. The full code and data is too long to post. The snippet below might explain what I'm doing somewhat. I'll work up some sample data and code if no solutions are found. ...snip> # Get info on first and last pair sets and lab names in last pair > nlabs <- labdata[["LABNUMBER"]] #e.g. 1, 2, 5, 6, ... > nolabs <- length(nlabs) #Total number of labs in last pair of labdata > #dpdata <- labdata[which(labdata[["LABNUMBER"]] == 13),] #Dummy paireddata row> dpdata <- rbind(labdata[0,], NA) > pdata <- dpdata > # Loop through pairs of labdata to build pdata for pairs (last 10 yearsor less)> k=0 > for(j in nlabs){+ for(i in ifpair:ilpair){ + k <- k + 1 #Counter for number of pairs. Start at 1. + setwd(dirs[i]); load("labdata.Rdata") #No trailing "/" in wd + setwd(cdir) #Go back to original ESN pair (last pair's folder in analysis) + tpdata <- labdata[which(labdata[["LABNUMBER"]] == j),] + if(NROW(tpdata) == 0){ + tpdata <- dpdata + tpdata[which(names(labdata) == "LABNUMBER")] <- j + tpdata[which(names(labdata) == "ESN")] <- ESN-((ilpair-ifpair)+1-k)*2 + tpdata[which(names(labdata) == "ESNm1")] <- ESN-((ilpair-ifpair)+1-k)*2-1 + } + #pdata[nrow(pdata)+1,names(tpdata)] <- NA + pdata[nrow(pdata)+1,names(tpdata)] <- tpdata + } + } There were 50 or more warnings (use warnings() to see the first 50) ...snip mailto:khobson at odot.org Kenneth Ray Hobson, P.E. Oklahoma DOT - QA & IAS Manager 200 N.E. 21st Street Oklahoma City, OK 73105-3204 (405) 522-4985, (405) 522-0552 fax Visit our website at: http://www.okladot.state.ok.us/materials/materials.htm
Tuszynski, Jaroslaw W.
2005-Jun-23 18:55 UTC
[R] Stop Warnings for Invalid Factor Level, NAs generated?
Check suppressWarnings function. Jarek ====================================================\====== Jarek Tuszynski, PhD. o / \ Science Applications International Corporation <\__,| (703) 676-4192 "> \ Jaroslaw.W.Tuszynski at saic.com ` \ -----Original Message----- From: r-help-bounces at stat.math.ethz.ch [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of khobson at fd9ns01.okladot.state.ok.us Sent: Thursday, June 23, 2005 9:09 AM To: r-help at stat.math.ethz.ch Subject: [R] Stop Warnings for Invalid Factor Level, NAs generated? How can I stop the following warning from occuring? invalid factor level, NAs generated in: "[<-.factor"(`*tmp*`, iseq, value structure(1, .Label = "12", class = "factor")) The Label messages are for "5", "8", "12" and "46". I want the NAs to be generated as needed. Is this causing R to slow down by generating the warning messages? There are over 50. I loop through up to 10 datasets and append one row from each to create a summary dataset. The full code and data is too long to post. The snippet below might explain what I'm doing somewhat. I'll work up some sample data and code if no solutions are found. ...snip> # Get info on first and last pair sets and lab names in last pair > nlabs <- labdata[["LABNUMBER"]] #e.g. 1, 2, 5, 6, ... > nolabs <- length(nlabs) #Total number of labs in last pair of labdata > #dpdata <- labdata[which(labdata[["LABNUMBER"]] == 13),] #Dummy paireddata row> dpdata <- rbind(labdata[0,], NA) > pdata <- dpdata > # Loop through pairs of labdata to build pdata for pairs (last 10 > yearsor less)> k=0 > for(j in nlabs){+ for(i in ifpair:ilpair){ + k <- k + 1 #Counter for number of pairs. Start at 1. + setwd(dirs[i]); load("labdata.Rdata") #No trailing "/" in wd + setwd(cdir) #Go back to original ESN pair (last pair's folder in analysis) + tpdata <- labdata[which(labdata[["LABNUMBER"]] == j),] + if(NROW(tpdata) == 0){ + tpdata <- dpdata + tpdata[which(names(labdata) == "LABNUMBER")] <- j + tpdata[which(names(labdata) == "ESN")] <- ESN-((ilpair-ifpair)+1-k)*2 + tpdata[which(names(labdata) == "ESNm1")] <- ESN-((ilpair-ifpair)+1-k)*2-1 + } + #pdata[nrow(pdata)+1,names(tpdata)] <- NA + pdata[nrow(pdata)+1,names(tpdata)] <- tpdata + } + } There were 50 or more warnings (use warnings() to see the first 50) ...snip mailto:khobson at odot.org Kenneth Ray Hobson, P.E. Oklahoma DOT - QA & IAS Manager 200 N.E. 21st Street Oklahoma City, OK 73105-3204 (405) 522-4985, (405) 522-0552 fax Visit our website at: http://www.okladot.state.ok.us/materials/materials.htm ______________________________________________ R-help at stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html