Here is R code which calculates the "Split Ratio" for historical data:
s <- getSymbols("GILD", auto.assign=FALSE)
splitRatio <- s$GILD.Adjusted / s$GILD.Close
names(splitRatio) <- c("SplitRatio")
However (and this is a big however): the cumulated amount of dividends paid will slowly distort this ratio. For example, IBM hasn't had a stock split since 1999, yet the "SplitRatio" at 2007-01-03 is 0.897. This means that IBM has paid out a total of (1/0.897)-1 = 11% dividends since 2007-01-03.
In addition, I'm not 100% sure that this is the complete story, so I've made this a community Wiki so any correct inassumptions can be addressed.
This answer is wrong, according to the comment below from Joshua Ullrich:
Don't do this. It's much better to use quantmod::adjustOHLC with Yahoo
data. When use.Adjusted=FALSE (the default), the function pulls the
split and dividend data from Yahoo and calculates the ratios manually.