Hi, I tried converting factors to character, but the results still has NAs. convert.type1 <- function(obj,types){ for (i in 1:length(obj)){ FUN <- switch(types[i],character = as.character, numeric = as.numeric, factor = as.factor, Date=as.Date.character, logical=as.logical) obj[,i] <- FUN(obj[,i]) } obj }
sample.melt1<-convert.type1(sample.melt,c("character","Date","character","character","logical","numeric","numeric","character","numeric")) str(sample.melt1) #'data.frame': 715 obs. of 9 variables: # $ site : chr "D-1" "D-1" "D-1" "D-1" ... # $ sampdate: Date, format: "2007-12-12" "2007-12-12" ... # $ era : chr "Post" "Post" "Post" "Post" ... # $ param : chr "AgTot" "AlTot" "Alk" "AsTot" ... # $ ceneq1 : logi TRUE FALSE FALSE FALSE TRUE FALSE ... # $ floor : num 0 0.106 231 0.0113 0 100 0 1.43 0 0.0239 ... # $ ceiling : num 1.30e-04 1.06e-01 2.31e+02 1.13e-02 5.00e-03 1.00e+02 2.00e-04 1.43 6.00e-03 2.39e-02 ... # $ variable: chr "quant" "quant" "quant" "quant" ... # $ value : num 1.30e-04 1.06e-01 2.31e+02 1.13e-02 5.00e-03 1.00e+02 2.00e-04 1.43 6.00e-03 2.39e-02 ... sample.cast <- dcast(sample.melt1, site + sampdate + era + ceneq1 + floor + ceiling ~ param) head(sample.cast) #site sampdate era ceneq1 floor ceiling AgDis AgTot AlDis Alk AlTot AsDis #1 D-1 2007-12-12 Post FALSE 0.00132 0.00132 NA NA NA NA NA NA #2 D-1 2007-12-12 Post FALSE 0.01130 0.01130 NA NA NA NA NA NA #3 D-1 2007-12-12 Post FALSE 0.02390 0.02390 NA NA NA NA NA NA #4 D-1 2007-12-12 Post FALSE 0.02530 0.02530 NA NA NA NA NA NA #5 D-1 2007-12-12 Post FALSE 0.03480 0.03480 NA NA NA NA NA NA #6 D-1 2007-12-12 Post FALSE 0.10600 0.10600 NA NA NA NA 0.106 NA #--------------------------------------------- #--------------------------------------------- #SO4 SrDis TDS TlDis TlTot TSS Vdis ZnDis ZnTot #1 NA NA NA NA NA NA NA NA NA #2 NA NA NA NA NA NA NA NA NA #3 NA NA NA NA NA NA NA NA NA #4 NA NA NA NA NA NA NA NA NA #5 NA NA NA NA NA NA NA NA NA #6 NA NA NA NA NA NA NA NA NA A.K. ----- Original Message ----- From: Rich Shepard <rshep...@appl-ecosys.com> To: R help <r-help@r-project.org> Cc: Sent: Wednesday, August 8, 2012 10:48 PM Subject: Re: [R] reshape2's dcast() Adds NAs to Data Frame On Wed, 8 Aug 2012, Jeff Newmiller wrote: > The explanation is that this is normal and consistent with behavior of > factors in general. If you don't want that, it is common to work with > character data instead of factors, only converting to factor when needed. > In most cases I invoke read.table with the as.is=TRUE argument and delay > converting to factors until I need them. Other people convert from factor > to character and back to factor to get rid of unwanted factor levels on an > as-needed basis. Jeff, First thing tomorrow I will research the difference between characters and data; I assumed they were the same. Thanks, Rich ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.