[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