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.

______________________________________________
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