[R] how to convert factors to numbers
murdoch at stats.uwo.ca
Sun Dec 14 19:47:38 CET 2008
On 14/12/2008 12:38 PM, doloop wrote:
> Hello, I am relatively new to using R. I am using R version 2.8.0. I have a
> program that downloads stock data from Yahoo! Finance and stores it to a
> text file on my hard drive. The text file contains the date, opening price,
> high price, low price, closing price, volume and adjusted price (i.e.,
> adjusted for dividends and splits). I want to read and manipulate the data
> in R. However, when I use read.table, it treats all of the data as
> "factors" and I do not know how to treat the data as numbers:
> QDate OpenP HighP LowP CloseP Vol AdjP
> 1 12/14/2006, 141.86, 143.24, 141.84, 143.12, 64755200, 138.34
Notice the commas: they are being read as part of the data, not as
separators. I imagine you need to use read.csv, not read.table, or
specify sep="," to the latter.
Once you're reading the data properly, you can convert to a number using
as.numeric(as.character( f )), where f is the factor. Don't just use
as.numeric(f); that will just extract the internal encoding.
> Warning message:
> In Ops.factor(spy[1, 5], spy[1, 2]) : - not meaningful for factors
> As you can see, I cannot calculate the difference between the closing price
> and the opening price, (much less compute averages, etc). This is clearly a
> "newbie" problem. In my defense, I am using the book by Michael Crawley
> (The R Book) as my teaching guide, but I cannot find the answer to this
> question in that rather densely packed book.
> Any help is appreciated.
More information about the R-help