假设我有一个字典表,例如:
id value
1 168833
2 367656
3 539218
4 892211
......(millions of lines)
和一个原始数据框,例如:
name code
Abo 1
Cm3 2
LL2 6
JJ 15
如何在不使用join或merge的情况下用字典表替换原表中的代码列?
我们可以用match
from base R
df1$value[match(df2$code, df1$id)]
或者另一个选择是hashmap
library(hashmap)
hp <- hashmap(df1$id, df1$value)
hp[[df2$code]]
基于中的示例?hashmap
,它工作得更快
microbenchmark::microbenchmark(
"R" = y[match(z, x)],
"H" = H[[z]],
times = 500L
)
#Unit: microseconds
# expr min lq mean median uq max neval
# R 154.197 202.1625 240.5838 229.1625 245.1735 6853.756 500
# H 15.861 19.0235 22.7721 22.4490 24.9670 62.230 500
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)