Hi, I have a csv file with different datatypes: 2009-01-01, character1, 10, 20.1 2009-01-02, character2, 11, 21.1 (I have attached the file to this post) I read this file with read.zoo as I want a zoo/xts timeseries:> t = read.zoo("./data.txt", sep=",", dec = ".", header=FALSE)If I look at the zoo data all integer/numeric columns are read as character:> str(t)?zoo? series from 2009-01-01 to 2009-01-02 Data: chr [1:2, 1:3] " character1" " character2" "10" "11" "20.1" "21.1" - attr(*, "dimnames")=List of 2 ..$ : NULL ..$ : chr [1:3] "V2" "V3" "V4" Index: Class 'Date' num [1:2] 14245 14246 So I try the colClasses parameter with read.zoo but it looks like this does not make any difference:> t1 = read.zoo("./data.txt", sep=",", dec = ".", header=FALSE,colClasses=c("Date", "character", "integer", "numeric"))> str(t1)?zoo? series from 2009-01-01 to 2009-01-02 Data: chr [1:2, 1:3] " character1" " character2" "10" "11" "20.1" "21.1" - attr(*, "dimnames")=List of 2 ..$ : NULL ..$ : chr [1:3] "V2" "V3" "V4" Index: Class 'Date' num [1:2] 14245 14246 Why does read.zoo ignores the colClasses parameter and how do I get integer/numeric data into my zoo series? Regards, -Mark- -------------- next part -------------- 2009-01-01, character1, 10, 20.1 2009-01-02, character2, 11, 21.1
On Wed, 12 Aug 2009, Mark Breman wrote:> Hi, > I have a csv file with different datatypes: > > 2009-01-01, character1, 10, 20.1 > 2009-01-02, character2, 11, 21.1 > > (I have attached the file to this post) > > I read this file with read.zoo as I want a zoo/xts timeseries: >> t = read.zoo("./data.txt", sep=",", dec = ".", header=FALSE) > > If I look at the zoo data all integer/numeric columns are read as > character: >> str(t) > ?zoo? series from 2009-01-01 to 2009-01-02 > Data: chr [1:2, 1:3] " character1" " character2" "10" "11" "20.1" "21.1" > - attr(*, "dimnames")=List of 2 > ..$ : NULL > ..$ : chr [1:3] "V2" "V3" "V4" > Index: Class 'Date' num [1:2] 14245 14246 > > So I try the colClasses parameter with read.zoo but it looks like this does > not make any difference: >> t1 = read.zoo("./data.txt", sep=",", dec = ".", header=FALSE, > colClasses=c("Date", "character", "integer", "numeric")) >> str(t1) > ?zoo? series from 2009-01-01 to 2009-01-02 > Data: chr [1:2, 1:3] " character1" " character2" "10" "11" "20.1" "21.1" > - attr(*, "dimnames")=List of 2 > ..$ : NULL > ..$ : chr [1:3] "V2" "V3" "V4" > Index: Class 'Date' num [1:2] 14245 14246 > > Why does read.zoo ignores the colClasses parameterzoo objects are a matrix plus an "index" (aka time) attribute (of arbitrary class). As the data is a matrix, it can only be of one type, everything numeric typically. Mixed classes would require a data.frame plus index, which is currently not yet supported.> and how do I get integer/numeric data into my zoo series?You can read it as a data.frame and convert the character column to integers if that makes sense for your data: x <- read.table("data.txt", sep = ",") x[,2] <- as.numeric(x[,2]) z <- zoo(as.matrix(x[,-1]), as.Date(as.character(x[,1]))) Alternatively, you could store the data as a data.frame of zoo series (a column in a data.frame can be of class zoo, including factor columns). hth, Z> Regards, > > -Mark- >
why you don't use read.csv2 (you save your file.csv) and you write read.csv2("path file",sep=",") hope this helps ________________________________ De : Mark Breman <breman.mark@gmail.com> À : r-help@stat.math.ethz.ch Envoyé le : Mercredi, 12 Août 2009, 10h46mn 43s Objet : [R] Zoo and numeric data Hi, I have a csv file with different datatypes: 2009-01-01, character1, 10, 20.1 2009-01-02, character2, 11, 21.1 (I have attached the file to this post) I read this file with read.zoo as I want a zoo/xts timeseries:> t = read.zoo("./data.txt", sep=",", dec = ".", header=FALSE)If I look at the zoo data all integer/numeric columns are read as character:> str(t)‘zoo’ series from 2009-01-01 to 2009-01-02 Data: chr [1:2, 1:3] " character1" " character2" "10" "11" "20.1" "21.1" - attr(*, "dimnames")=List of 2 ..$ : NULL ..$ : chr [1:3] "V2" "V3" "V4" Index: Class 'Date' num [1:2] 14245 14246 So I try the colClasses parameter with read.zoo but it looks like this does not make any difference:> t1 = read.zoo("./data.txt", sep=",", dec = ".", header=FALSE,colClasses=c("Date", "character", "integer", "numeric"))> str(t1)‘zoo’ series from 2009-01-01 to 2009-01-02 Data: chr [1:2, 1:3] " character1" " character2" "10" "11" "20.1" "21.1" - attr(*, "dimnames")=List of 2 ..$ : NULL ..$ : chr [1:3] "V2" "V3" "V4" Index: Class 'Date' num [1:2] 14245 14246 Why does read.zoo ignores the colClasses parameter and how do I get integer/numeric data into my zoo series? Regards, -Mark- [[alternative HTML version deleted]]
See zoo-faq number 4: vignette("zoo-faq") On Wed, Aug 12, 2009 at 4:46 AM, Mark Breman<breman.mark at gmail.com> wrote:> Hi, > I have a csv file with different datatypes: > > 2009-01-01, character1, 10, 20.1 > 2009-01-02, character2, 11, 21.1 > > (I have attached the file to this post) > > I read this file with read.zoo as I want a zoo/xts timeseries: >> t = read.zoo("./data.txt", sep=",", dec = ".", header=FALSE) > > If I look at the zoo data all integer/numeric columns are read as > character: >> str(t) > ?zoo? series from 2009-01-01 to 2009-01-02 > ?Data: chr [1:2, 1:3] " character1" " character2" "10" "11" "20.1" "21.1" > ?- attr(*, "dimnames")=List of 2 > ?..$ : NULL > ?..$ : chr [1:3] "V2" "V3" "V4" > ?Index: Class 'Date' ?num [1:2] 14245 14246 > > So I try the colClasses parameter with read.zoo but it looks like this does > not make any difference: >> t1 = read.zoo("./data.txt", sep=",", dec = ".", header=FALSE, > colClasses=c("Date", "character", "integer", "numeric")) >> str(t1) > ?zoo? series from 2009-01-01 to 2009-01-02 > ?Data: chr [1:2, 1:3] " character1" " character2" "10" "11" "20.1" "21.1" > ?- attr(*, "dimnames")=List of 2 > ?..$ : NULL > ?..$ : chr [1:3] "V2" "V3" "V4" > ?Index: Class 'Date' ?num [1:2] 14245 14246 > > Why does read.zoo ignores the colClasses parameter and how do I get > integer/numeric data into my zoo series? > > Regards, > > -Mark- > > ______________________________________________ > 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. > >