首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么data.table中的键“字符通常更倾向于因子”?

为什么data.table中的键“字符通常更倾向于因子”?
EN

Stack Overflow用户
提问于 2013-08-18 23:48:29
回答 1查看 1K关注 0票数 9

来自data.table手册:

事实上,我们非常喜欢它,以至于data.table包含了一个使用R内部全局字符串缓存的字符向量计数排序算法。对于包含许多重复项的字符向量,例如键列中的分组数据,这是特别快的。这意味着,性格往往是首选的因素。因素仍然得到充分的支持,特别是有序因素(水平不按字母顺序排列)。

factor不只是整数吗?它应该比character更容易执行counting sort

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-19 21:21:34

因子不只是整数,它应该比字符更容易计数排序吗?

是的,如果你已经得到了一个因素。但是创造这一因素的时间可能是很重要的,这也是setkey (和特设by)的目标。在一个随机排列的字符向量上尝试定时factor(),例如1e6长和1e4级别。然后与原随机有序字符向量上的setkey或ad by进行比较。

agstudy的注释也是正确的;也就是说,字符向量(作为指向R缓存字符串的指针)与其他因素非常相似。在32位系统中,字符向量与因子的整数向量大小相同,但该因子也有级别属性可存储(有时还包括复制)。在64位系统上,指针的大小是原来的两倍。但另一方面,R的字符串缓存可以直接从字符向量指针中查找,而该因子通过级别有额外的跳转。(level属性也是R字符串缓存指针的字符向量。)

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18304760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档