我想做的是在 R 中实现一个哈希技巧。
代码如下:
library(digest)
a<-digest("key_a", algo='xxhash32')
#[1] "4da5b0f8"
这返回了字符类型的哈希码。有什么办法可以把它变成整数吗?
或者还有其他包可以实现这个目的吗?
该输出是一个十六进制(以 16 为基数)字符串。使用以下函数将其更改为十进制。取自另一个论坛帖子,但链接不再有效(2017)。
hex_to_int = function(h) {
xx = strsplit(tolower(h), "")[[1L]]
pos = match(xx, c(0L:9L, letters[1L:6L]))
sum((pos - 1L) * 16^(rev(seq_along(xx) - 1)))
}
Output
> hex_to_int(a)
[1] 1302704376
但更好的答案是strtoi:正如 @Andrie 所说和 @Gedrox 回答的那样,基础::strtoi https://stat.ethz.ch/R-manual/R-devel/library/base/html/strtoi.html函数以同样的方式工作。
strtoi("4da5b0f8", 16)
[1] 1302704376
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)