将 str_length 应用于数据框时出现问题

Issue with applying str_length to a dataframe

我创建了一个简单的 R 脚本,运行 每月由同事创建。

此脚本引入了一个相当大的 RDS 文件,其中包含大约 260 万个观测值和 521 个变量。

针对此文件,以下两个命令是 运行:

Latest$MFU <- substr(Latest$SUB_BUSINESS_UNIT_CODE, 1, 2)
Latest$LENGTH <- str_length(Latest$POLICYHOLDER_COMPANY_NAME_LAST_NAME)

这个脚本在过去三年里 运行 完美无缺,但今天,由于某种原因,三个负责 运行 它的人现在都失败了,我自己也确实失败了也是。

收到的错误信息是

Error: cannot allocate vector of size 10.0 Mb

起初我假设他们的计算机运行内存不足,或者他们没有使用 64 位 R,或者一些其他原因,例如没有重新启动他们的计算机等

事实证明,他们有足够的可用内存,已重新启动计算机,在 R Studio 中使用 64 位 R,并且所有人都在使用不同版本的 R Studio/R。

我自己尝试了 运行ning 这个过程,我的电脑有 32GB 的 Ram 和 768GB 的​​硬盘驱动器 space 免费。我收到相同的错误消息......

所以,我认为一定是损坏的源文件。试试上个月的文件,上个月 运行 每个人都很好,但同样的错误。

也许只是试试 stringr package 而不是,以这种方式解决问题。不,没有骰子,完全相同的错误消息。

我不得不承认我被难住了。我试过 gc(),试过该文件的以前版本,试过将文件切成两半,然后 运行 那样,它完全拒绝 运行。

有谁知道 stringr/base R 命令的替代方法,以获取字符串的长度作为新变量并将子字符串作为新变量?

在 运行 和 memory.limit(size = 16265*4)(或另一个大数字)之前的 rm(list=ls()) 呢?