[R] readRDS, In as.double.xts(fishReport$count) : NAs introduced by coercion

arun smartpink111 at yahoo.com
Sun Jul 29 08:45:53 CEST 2012


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.




More information about the R-help mailing list