我目前正在研究一个包含一个name属性的数据集,该属性代表一个人的名字。使用 读取 csv 文件后read.csv,变量factor默认为 ( stringsAsFactors=TRUE),级别约为 10k。由于name不反映任何组成员身份,我不确定将其保留为factor.
有必要转换name成character吗?这样做(或不这样做)有什么好处吗?这还重要吗?
我目前正在研究一个包含一个name属性的数据集,该属性代表一个人的名字。使用 读取 csv 文件后read.csv,变量factor默认为 ( stringsAsFactors=TRUE),级别约为 10k。由于name不反映任何组成员身份,我不确定将其保留为factor.
有必要转换name成character吗?这样做(或不这样做)有什么好处吗?这还重要吗?
因子存储为数字和水平表。如果您有分类数据,将其存储为一个因素可能会节省大量内存。
例如,如果您将长度为 1,000 的向量存储为字符,并且字符串的长度均为 100 个字符,则它将占用大约 100,000 个字节。如果将其存储为一个因子,则大约需要 8,000 个字节加上不同因子的长度之和。
与因子的比较也应该更快,因为通过比较数字而不是字符值来测试相等性。
当您想要添加新项目时,将其保留为角色的优势就来了,因为您现在正在更改级别。
将它们存储为对数据所代表的内容最有意义的任何内容。如果name不是分类的,而且听起来不是,那么使用字符。
对上述问题的几点思考:
快乐编码!