问题描述
如何将股票行情收录器转换为R中的唯一整数?
例如,这在基于股票报价器符号匹配两个数据库时很有用。该代码应适用于普通的股票行情自动收录器(大写字母,长度为1-4个字符)。
解决方法
hash.ticker <- Vectorize( function(s,M=length(letters),MAXCHARS=4) {
v <- utf8ToInt(s) - utf8ToInt("@")
if (length(v)<MAXCHARS) v <- c(v,rep(0,MAXCHARS-length(v)))
stopifnot( all( (v >= 0) & (v <= M) ) ) ## need 0 to account for empty (0)
sum( v * (M)^(0:(length(v)-1)) )
})
print( hash.ticker( c("A","Z","AA","ZZ","ZZZZ") ) )
A Z AA ZZ ZZZZ
1 26 27 702 475254