Here is what worked for me:

 

1) Create a single xts object using one column and the index

2) Merge with the other columns

 

tt = read.csv("c:/ttt/totalpc.csv", skip=1)

xx = xts(tt$Call, order.by=as.Date(tt$Trade_date, format="%m/%d/%Y"))

yy = merge(xx, tt$Put, tt$Total, tt$P.C.Ratio)

colnames(yy) = c("Call", "Put", "Total", "P.C.Ratio")

 

The last line resets the column names.

 

HTH

 
> From: dlvanbr...@gmail.com
> Date: Sat, 19 Dec 2009 18:11:50 -0500
> To: r-help@r-project.org
> Subject: [R] as.xts convert all my numeric data to character
> 
> Hello, all... I've been playing with the TTR package and quantmod, and I'm
> loading the Chicago Board of Exchange put/call ratio data via a simple
> read.csv call...
> 
> CBOEtotal<-read.csv(file="
> http://www.cboe.com/publish/ScheduledTask/MktData/datahouse/totalpc.csv
> ",skip=1)
> 
> this gives me a data frame with columns....
> > names(CBOEtotal)
> [1] "Trade_date" "Call" "Put" "Total" "P.C.Ratio"
> 
> > head(CBOEtotal)
> 
> Trade_date Call Put Total P.C.Ratio
> 1 2003-10-17 1152086 733258 1885344 0.64
> 2 2003-10-21 773759 540023 1313782 0.70
> 3 2003-10-22 663452 646991 1310443 0.98
> 4 2003-10-23 579837 493493 1073330 0.85
> 5 2003-10-24 690948 630758 1321706 0.91
> 6 2003-10-27 512226 328592 840818 0.64
> 
> Now I'd like to merge this with the data I've downloaded using TTR.
> > Hx<- getYahooData("AAPL", "20030101", "20091130")
> > head(Hx)
> Open High Low Close Volume Unadj.Close Div Split Adj.Div
> 2003-01-02 7.180 7.460 7.175 7.400 6479600 14.80 NA NA NA
> 2003-01-03 7.400 7.465 7.295 7.450 5266200 14.90 NA NA NA
> 2003-01-06 7.515 7.690 7.440 7.450 13947600 14.90 NA NA NA
> 2003-01-07 7.395 7.500 7.235 7.425 12226600 14.85 NA NA NA
> 2003-01-08 7.290 7.355 7.220 7.275 8201600 14.55 NA NA NA
> 2003-01-09 7.310 7.460 7.250 7.340 7687600 14.68 NA NA NA
> 
> > is.xts(Hx)
> [1] TRUE
> 
> In order to merge by date, I am trying to convert the first data frame in to
> an xts matrix first, but when I try, all my data gets converted to character
> data....
> 
> > CBOEtotal$Trade_date<-as.POSIXct(paste(CBOEtotal$Trade_date,"0:0:0"),
> format = "%m/%d/%Y %H:%M:%S",tz="EST")
> > CBOEtotal<-xts(CBOEtotal,order.by=CBOEtotal$Trade_date)
> > head(CBOEtotal)
> Trade_date Call Put Total P.C.Ratio
> 2003-10-17 "2003-10-17" "1152086" " 733258" " 1885344" "0.64"
> 2003-10-21 "2003-10-21" " 773759" " 540023" " 1313782" "0.70"
> 2003-10-22 "2003-10-22" " 663452" " 646991" " 1310443" "0.98"
> 2003-10-23 "2003-10-23" " 579837" " 493493" " 1073330" "0.85"
> 2003-10-24 "2003-10-24" " 690948" " 630758" " 1321706" "0.91"
> 2003-10-27 "2003-10-27" " 512226" " 328592" " 840818" "0.64"
> 
> And nothing I try will make those things numbers again. (not "as.double" or
> "as.numeric" to each column)
> 
> What am I missing? Using R 2.10.1 on Mac OS X
> 
> [[alternative HTML version deleted]]
> 
> ______________________________________________
> 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.
                                          
_________________________________________________________________



        [[alternative HTML version deleted]]

______________________________________________
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.

Reply via email to