[R] The time series analysis functions/packages don't seem to like my data
Ted Byers
r.ted.byers at gmail.com
Sat Jul 4 01:34:24 CEST 2009
Hi Mark
Thanks for replying.
Here is a short snippet that reproduces the problem:
library(PerformanceAnalytics)
thedata = read.csv("K:\\Work\\SignalTest\\BP.csv", sep = "\t", header
= FALSE, na.strings="")
thedata
x = as.timeseries(thedata)
x
table.Drawdowns(thedata,top = 10)
table.Drawdowns(thedata$V2, top = 10)
The object 'thedata' has exactly what I expected. the line 'thedata'
prints the correct contents of the file with each row prepended by a
line number. The last few lines are:
8191 2009-06-17 48.40
8192 2009-06-18 47.72
8193 2009-06-19 48.83
8194 2009-06-22 46.85
8195 2009-06-23 47.11
8196 2009-06-24 46.97
8197 2009-06-25 47.43
The number of lines (8197), dates (and their format) and prices are correct.
The last four lines produce the following output:
> x = as.timeseries(thedata)
Error: could not find function "as.timeseries"
> x
Error: object 'x' not found
> table.Drawdowns(thedata,top = 10)
Error in 1 + na.omit(x) : non-numeric argument to binary operator
> table.Drawdowns(thedata$V2, top = 10)
Error in if (thisSign == priorSign) { :
missing value where TRUE/FALSE needed
>
Are the functions in your example in Rmetrics or PerformanceAnalytics?
(like I said, I am just beginning this exploration, and I started with
table.Drawdowns because it produces information that I need first)
And given that my data is in tab delimited files, and can be read
using read.csv, how do I feed my data into your four statements?
My guess is I am missing something in coercing my data in (the data
frame?) thedata into a timeseries array of the sort the time series
analysis functions need: and one of the things I find a bit confusing
is that some of the documentation for this mentions S3 classes and
some mentions S4 classes (I don't know if that means I have to make
multiple copies of my data to get the output I need). I could coerce
thedata$V2 into a numeric vector, but I'd rather not separate the
prices from their dates unless that is necessary (how would one
produce monthly, annual or annualized rates of return if one did
that?).
Thanks
Ted
On Fri, Jul 3, 2009 at 6:39 PM, Mark Knecht<markknecht at gmail.com> wrote:
> On Fri, Jul 3, 2009 at 2:48 PM, Ted Byers<r.ted.byers at gmail.com> wrote:
>> I have hundreds of megabytes of price data time series, and perl
>> scripts that extract it to tab delimited files (I have C++ programs
>> that must analyse this data too, so I get Perl to extract it rather
>> than have multiple connections to the DB).
>>
>> I can read the data into an R object without any problems.
>>
>> thedata = read.csv("K:\\Work\\SignalTest\\BP.csv", sep = "\t", header
>> = FALSE, na.strings="")
>> thedata
>>
>> The above statements give me precisely what I expect. The last few
>> lines of output are:
>> 8190 2009-06-16 49.30
>> 8191 2009-06-17 48.40
>> 8192 2009-06-18 47.72
>> 8193 2009-06-19 48.83
>> 8194 2009-06-22 46.85
>> 8195 2009-06-23 47.11
>> 8196 2009-06-24 46.97
>> 8197 2009-06-25 47.43
>>
>> I have loaded Rmetrics and PerformanceAnalytics, among other packages.
>> I tried as.timeseries, but R2.9.1 tells me there is no such function.
>> I tried as.ts(thedata), but that only replaces the date field by the
>> row label in 'thedata'.
>>
>> If I apply the performance analytics drawdowns function to either
>> thedata or thedate$V2, I get errors:
>>> table.Drawdowns(thedata,top = 10)
>> Error in 1 + na.omit(x) : non-numeric argument to binary operator
>>> table.Drawdowns(thedata$V2, top = 10)
>> Error in if (thisSign == priorSign) { :
>> missing value where TRUE/FALSE needed
>>>
>>
>> thedata$V2 by itself does give me the price data from the file.
>>
>> I am a relative novice in using R for timeseries, so I wouldn't be
>> surprised it I missed something that would be obvious to someone more
>> practiced in using R, but I don't see what that could be from the
>> documentation of the functions I am looking at using. I have no
>> shortage of data, and I don't want to write C++ code, or perl code, to
>> do all the kinds of calculations provided in, Rmetrics and
>> performanceanalytics, but getting my data into the functions these
>> packages provide is killing me!
>>
>> What did I miss?
>>
>> Thanks
>>
>> Ted
>>
>> ______________________________________________
>> 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.
>>
>
> Could you supply some portion of the results when you run the example
> on your data? The example goes like:
>
> data(edhec)
> R=edhec[,"Funds.of.Funds"]
> findDrawdowns(R)
> sortDrawdowns(findDrawdowns(R))
>
> How are you using the function with your data?
>
> - Mark
>
More information about the R-help
mailing list