仅为R 2 GB中的实体分配内存?
Windows 10 64位、32 GB RAM、Rstudio 1.1.383和R 3.4.2(最新) 我有几个csv文件,其中至少有1或2行充满了许多nul值。因此,我编写了一个脚本,它使用R中的stringr包中的read\u lines\u raw()读取原始格式的文件。它生成一个列表,其中每个元素都是一行。然后我检查00(nul值),当发现该行被删除时 其中一个文件的大小为2.5 GB,并且在其中的某个位置具有nul值。问题是,read\u lines\u raw无法读取此文件并引发错误:仅为R 2 GB中的实体分配内存?,r,memory,memory-management,stringr,nul,R,Memory,Memory Management,Stringr,Nul,Windows 10 64位、32 GB RAM、Rstudio 1.1.383和R 3.4.2(最新) 我有几个csv文件,其中至少有1或2行充满了许多nul值。因此,我编写了一个脚本,它使用R中的stringr包中的read\u lines\u raw()读取原始格式的文件。它生成一个列表,其中每个元素都是一行。然后我检查00(nul值),当发现该行被删除时 其中一个文件的大小为2.5 GB,并且在其中的某个位置具有nul值。问题是,read\u lines\u raw无法读取此文件并引发错
r in read_lines_raw_(ds, n_max = n_max, progress = progress) :
negative length vectors are not allowed
could not allocate memory (2048 Mb) in C function 'R_AllocStringBuffer'
我甚至不明白这个问题。我的一些研究暗示了一些关于内存大小的问题,但甚至没有使用一半的内存。它能够读取的其他一些文件的大小为1.5 GB。这个文件太大了,还是其他原因导致了这个问题
更新1:
我试图使用scan读取整个文件,但这也给了我一个错误:
r in read_lines_raw_(ds, n_max = n_max, progress = progress) :
negative length vectors are not allowed
could not allocate memory (2048 Mb) in C function 'R_AllocStringBuffer'
因此,尽管我的电脑是32 GB,但实体的最大允许空间是2 GB?我检查了一下,确保它运行的是64位R,是的
> version
_
platform x86_64-w64-mingw32
arch x86_64
os mingw32
system x86_64, mingw32
status
major 3
minor 4.2
year 2017
month 09
day 28
svn rev 73368
language R
version.string R version 3.4.2 (2017-09-28)
nickname Short Summer
似乎很多人都面临着类似的问题,但我找不到解决办法。如何增加单个实体的内存分配?memory.limit()返回32 GB,这是RAM大小,但这没有帮助。memory.size()确实给出了接近2GB的值,而且由于磁盘上的文件是2.7GB,因此我认为这就是产生错误的原因
多谢各位