[R] Extract one element from yahooKeystats data
David Winsemius
dwinsemius at comcast.net
Tue Apr 28 01:42:44 CEST 2009
Using str(data) would have been more informative.
"data" it turns out is a dataframe with a single column. which is a
factor with rownames. Not the most typical of constructions, but the
authors must have had their reasons ....
data$Value[row.names(data)=="Float"]
# [1] 1.30B
# 52 Levels: -1.00% -11.40% -18.69% -38.03% 0.04% 0.78 06-Feb-09 09-
Mar-09 ... NA
# ... or to get rid of those annoying factor levels...
as.character(data[row.names(data)=="Float", ] )
# [1] "1.30B"
On Apr 27, 2009, at 6:55 PM, David Winsemius wrote:
>
> On Apr 27, 2009, at 3:43 PM, J Toll wrote:
>
>> I am trying to extract one particular piece of data(Float) from all
>> the data returned by yahooKeystats, but thus far I'm having no luck.
>> This is what I've got so far:
>>
>>> library(fImport)
>> Loading required package: timeSeries
>> Loading required package: timeDate
>>> data<-yahooKeystats("IBM")
>> trying URL 'http://finance.yahoo.com/q/ks?s=IBM'
>> Content type 'text/html; charset=utf-8' length unknown
>> opened URL
>> .......... .......... .......... .......
>> downloaded 37 Kb
>> Read 151 items
>>> typeof(data)
>> [1] "list"
>>> data
>> Value
>> Symbol IBM
>> Date 2009-04-27
>> Market Cap (intraday) <span id="yfs_j10_ibm">132.36B
>> Enterprise Value (27-Apr-09) 150.79B
>> Trailing PE (ttm intraday) 11.13
>> Fiscal Year Ends 31-Dec
>> Most Recent Quarter (mrq) 31-Mar-09
>> Profit Margin (ttm) 12.21%
>> Operating Margin (ttm) 17.40%
>> Return on Assets (ttm) 9.80%
>> Return on Equity (ttm) 58.16%
>> Revenue (ttm) 100.84B
>> Revenue Per Share (ttm) 74.845
>> Qtrly Revenue Growth (yoy) -11.40%
>> Gross Profit (ttm) 45.66B
>> EBITDA (ttm) 23.01B
>> Net Income Avl to Common (ttm) 12.31B
>> Diluted EPS (ttm) 9.01
>> Qtrly Earnings Growth (yoy) -1.00%
>> Total Cash (mrq) 12.30B
>> Total Cash Per Share (mrq) 9.314
>> Total Debt (mrq) 30.98B
>> Total DebtEquity (mrq) NA
>> Current Ratio (mrq) 1.176
>> Book Value Per Share (mrq) 10.304
>> Operating Cash Flow (ttm) 18.81B
>> Levered Free Cash Flow (ttm) 12.03B
>> Beta 0.78
>> 52-Week Change -18.69%
>> S&P500 52-Week Change -38.03%
>> 52-Week High (24-Jul-08) 130.93
>> 52-Week Low (21-Nov-08) 69.50
>> 50-Day Moving Average 96.26
>> 200-Day Moving Average 89.12
>> Average Volume (3 month) 11641500
>> Average Volume (10 day) 10376000
>> Shares Outstanding 1.32B
>> Float 1.30B
>> % Held by Insiders 0.04%
>> % Held by Institutions 60.80%
>> Shares Short (as of 26-Mar-09) 19.41M
>> Short Ratio (as of 26-Mar-09) 1.7
>> Short % of Float (as of 26-Mar-09) 1.40%
>> Shares Short (prior month) 19.30M
>> Forward Annual Dividend Rate 2.00
>> Forward Annual Dividend Yield 2.00%
>> Trailing Annual Dividend Rate 2.00
>> Trailing Annual Dividend Yield 2.00%
>> 5 Year Average Dividend Yield 1.30%
>> Payout Ratio 21%
>> Dividend Date 09-Mar-09
>> Ex-Dividend Date 06-Feb-09
>> Last Split Factor (new per old) 2/1
>> Last Split Date 27-May-99
>>
>> From the help page, it says that yahooKeystats returns a dataframe,
>> but typeof() lists it as a list.
>
> Well, a dataframe is a list after all.
>
>> Is there a way to just pull out the
>> number of float shares? Something along the lines of:
>>
>> data$Float or data[Float]
>
> The first would give you a vector of all the values of Float in that
> dataframe. The second would probably not give you what you want,
> because that is a construction that would presume Float to be a
> logical vector.
>>
>> Neither have worked for me. Thanks.
>
> Define "worked". Around these parts "did not work" requires code
> that produces some sort of error message or <something> that departs
> from what you expected (which should also be explicitly stated).
>
>>
David Winsemius, MD
Heritage Laboratories
West Hartford, CT
More information about the R-help
mailing list