how to convert factors to numbers
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:
spy<-read.table("c:\\StockData\\SPY.txt")
attach(spy)
names(spy)<-c("QDate","OpenP","HighP","LowP","CloseP","Vol","AdjP")
spy[1,]
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. Duncan Murdoch
ChangeFromOpen<-spy[1,5]-spy[1,2]
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.