Yolande Tra
2012-Jul-29 02:23 UTC
[R] readRDS, In as.double.xts(fishReport$count) : NAs introduced by coercion
Hello, I looked in the R-help but could not find an archive addressing the following. I would like to convert a character to numeric after reading a file with RDS extension. After using as.numeric, I checked if it is numeric. It was not converted. Please help. Here is my code>Report <- readRDS(file="RDS/Report.RDS") > Report[1:2,]dive_id date time species count size 2008-08-06 08:49:00 " 1" "08/06/2008" "8:49:00" "S. OYT" "15" "6" 2008-08-06 08:49:00 " 1" "08/06/2008" "8:49:00" "S. atrovirens" "1" "23" site depth level TRANSECT VIS_M TEMP_C swell_URSKI 2008-08-06 08:49:00 "Hopkins" "15" "B" "1" "3.5" "13.9" "1.0686708" 2008-08-06 08:49:00 "Hopkins" "15" "B" "1" "3.5" "13.9" "1.0686708"> Report$count<-as.numeric(Report$count)Warning message: In as.double.xts(fishReport$count) : NAs introduced by coercion>is.numeric(Report$count)[1] FALSE Thank you, Y [[alternative HTML version deleted]]
arun
2012-Jul-29 06:45 UTC
[R] readRDS, In as.double.xts(fishReport$count) : NAs introduced by coercion
Hello, I tried to do the same thing that you have done.? Without the timestamps as rownames (xts object), there were no errors. dat1<-read.table(text=" dive_id? date??????? time????? species??????? count size ?1 08/06/2008 8:49:00 S.OYT??????? 15 6 ?1 08/06/2008 8:49:00 S.atrovirens 1 23 ",header=TRUE, sep="") ?dat2<-dat1 saveRDS(dat2,"dat2.rds") ?dat3<-readRDS("dat2.rds") ?str(dat3) #'data.frame':??? 2 obs. of? 6 variables: # $ dive_id: int? 1 1 # $ date?? : Factor w/ 1 level "08/06/2008": 1 1 # $ time?? : Factor w/ 1 level "8:49:00": 1 1 # $ species: Factor w/ 2 levels "S.atrovirens",..: 2 1 # $ count? : int? 15 1 # $ size?? : int? 6 23 dat3$count<-as.numeric(dat3$count) ?is.numeric(dat3$count) #[1] TRUE ####Now with timestamps as row.names library(xts) ?DateTime<-as.POSIXct(c("2008-08-06 08:49:00","2008-08-06 08:49:00"),format="%Y-%m-%d %H:%M") dat4<-xts(dat1,order.by=DateTime) ?saveRDS(dat4,"dat4.rds") ?dat5<-readRDS("dat4.rds") ?identical(dat4,dat5) #[1] TRUE dat5$count<-as.numeric(dat5$count) #Here, I didn't get the warning message that you got> is.numeric(dat5$count)#[1] FALSE #So, I assume that it is not because of reading the file as an RDS extension, but reading it as an xts object. #You can convert the xts to dataframe and do the conversion of "count" column to numeric. dat6<-data.frame(date=index(dat5),coredata(dat5)) ?str(dat6) #'data.frame':??? 2 obs. of? 7 variables: ?#$ date?? : POSIXct, format: "2008-08-06 08:49:00" "2008-08-06 08:49:00" ?#$ dive_id: Factor w/ 1 level "1": 1 1 ?#$ date.1 : Factor w/ 1 level "08/06/2008": 1 1 ?#$ time?? : Factor w/ 1 level "8:49:00": 1 1 ?#$ species: Factor w/ 2 levels "S.atrovirens",..: 2 1 ?#$ count? : Factor w/ 2 levels " 1","15": 2 1 ?#$ size?? : Factor w/ 2 levels "23"," 6": 2 1 ?dat6$count<-as.numeric(dat6$count) ?is.numeric(dat6$count) #[1] TRUE I hope this helps. A.K. ----- Original Message ----- From: Yolande Tra <yolande.tra at gmail.com> To: R help <r-help at r-project.org> Cc: Sent: Saturday, July 28, 2012 10:23 PM Subject: [R] readRDS, In as.double.xts(fishReport$count) : NAs introduced by coercion Hello, I looked in the R-help but could not find an archive addressing the following. I would like to convert a character to numeric after reading a file with RDS extension. After using as.numeric, I checked if it is numeric. It was not converted. Please help. Here is my code>Report <- readRDS(file="RDS/Report.RDS") > Report[1:2,]? ? ? ? ? ? ? ? ? ? dive_id date? ? ? ? time? ? ? species? ? ? ? count size 2008-08-06 08:49:00 " 1"? ? "08/06/2008" "8:49:00" "S. OYT"? ? ? ? "15" "6" 2008-08-06 08:49:00 " 1"? ? "08/06/2008" "8:49:00" "S. atrovirens" "1" "23" ? ? ? ? ? ? ? ? ? ? site? ? ? depth level TRANSECT VIS_M TEMP_C swell_URSKI 2008-08-06 08:49:00 "Hopkins" "15"? "B"? "1"? ? ? "3.5" "13.9" "1.0686708" 2008-08-06 08:49:00 "Hopkins" "15"? "B"? "1"? ? ? "3.5" "13.9" "1.0686708"> Report$count<-as.numeric(Report$count)Warning message: In as.double.xts(fishReport$count) : NAs introduced by coercion>is.numeric(Report$count)[1] FALSE Thank you, Y ??? [[alternative HTML version deleted]] ______________________________________________ R-help at 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.