
Hello everyone!I have a data set with missing observations that I am trying to impute. I am using MICE and I would like the imputed values to all be positive. I have two types of variables: prices (P1 to P136) and quantities (Q1 to Q136) and I also want the range of these two types to be different. Besides these variables. I am using the squeeze function but I am unable to set it such that I don't have to write the names of all the variables. Also note that I do not have all the 136 Ps and Qs because since some were completely missing, I had to drop those variables. But my first Q is called Q1 and the last one Q136 and similarly for P. I apologize if I am making a silly little error since I am still learning R. 
This is the code that I have and the error that I am getting:
#####Program starts here#####Read data into Rdf <- read.table("F:\\testC2S4\\new_C2-S4_head_data.txt", header = TRUE);                        #, stringsAsFactors = TRUEdfPZ <- df[ ,1:3]dfDV <- df[ ,277:311]dfPtemp <- df[ ,seq(4, 275, by = 2)]dfP <- dfPtemp[, sapply(dfPtemp, function(x) !all(is.na(x)))]dfQtemp <- df[ ,seq(5, 275, by = 2)]dfQ <- dfQtemp[, sapply(dfQtemp, function(x) !all(is.na(x)))]remove(dfPtemp, dfQtemp)
NewPrimal <- data.frame(c(dfPZ, dfQ, dfP, dfDV), row.names = NULL, check.rows = F, check.names = F) remove(dfPZ, dfQ, dfP, dfDV)
library(mice)# setting up the default settings for the imputationini <- mice(NewPrimal,             seed = 52275,            imputationMethod = "norm",            maxit=0,            pred = quickpred(NewPrimal,                    mincor = 0.25,                   minpuc = 0.95,                    include = c("blnNewYearsDay", "blnValentinesDay", "blnStPatricksDay",                                "blnEaster", "blnMothersDay", "blnMemorialDay",                                "blnFathersDay", "blnIndependenceDay", "blnLaborDay",                                "blnThanksgiving", "blnChristmas", "Qtr1", "Qtr2", "Qtr3",                               "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep",                                "Oct", "Nov", "Dec"),                   exclude = c("ActualWeekEndingDate", "CompanyID", "PriceZoneID", "Date", "Year")),                   print=FALSE)
meth <- ini$meth # naming the default method in inipred <- ini$pred   # naming the matrix of default predictors in inipost <- ini$post    # naming the default post processing method in inipost["Q1":"Q136"] <- "imp[[j]][,i] <- squeeze(imp[[j]][,i],c(0,351000))"  #setting the range for quantitypost["P1":"P136"] <- "imp[[j]][,i] <- squeeze(imp[[j]][,i],c(0,50))"          #setting the range for price
# calling mice to impute given default settings:impNP <- mice(NewPrimal, meth = meth, maxit=5, pred = pred, post = post)

######My error warning####Error in "Q1":"Q136" : NA/NaN argument
In addition: Warning messages:
1: In post["Q1":"Q136"] <- "imp[[j]][,i] <- squeeze(imp[[j]][,i],c(0,351000))" :
  NAs introduced by coercion
2: In post["Q1":"Q136"] <- "imp[[j]][,i] <- squeeze(imp[[j]][,i],c(0,351000))" :
  NAs introduced by coercion
Any ideas?
Thank you and have a great weekend!

Rita ________________________________________ "If you think education is expensive, try ignorance"--Derek Bok


 		 	   		  
	[[alternative HTML version deleted]]

