我有一个2.5 GB的数据集,对于我的4GB内存来说这是很大的。我不知道将字符变量转换为因子是否可以节省空间和处理时间。
我可以想象,在内部,因子将以数字形式存储在具有级别的查找表中。但是我不确定它是如何工作的。
最佳答案
转换为因数不会节省空间,因为字符存储在哈希表中。请参阅1.10 The CHARSXP cache的R Internals部分。
如果您的代码需要转换为因数(运行回归,分类等),则转换为因数可能会缩短处理时间,但是如果您要进行字符串操作,则转换为因数并不会缩短处理时间,因为必须将其转换为因数回到一个角色。因此,这实际上取决于您在做什么。