在shell脚本中使用R函数读取大文件时出错

在shell脚本中使用R函数读取大文件时出错

我有一个包含 185405149 行和一个标题的文本文件。我正在这个 bash 脚本中阅读这个文件:

#!/bin/bash
#PBS -N R_Job
#PBS -l walltime=4:00:00
#PBS -l vmem=20gb

module load R/4.2.1

cd filepath/

R --save -q -f script.R

部分脚本如下:

# import the gtex data 
gtex_data <- read.table("/filepath/file.txt", header=TRUE)

我收到错误:错误:无法分配大小为 2.0 Gb 的向量执行已停止。

它与目录/文件路径无关。我怀疑这与记忆有关。即使在压缩文件(例如 file.txt.gz)并使用以下命令之后:

gtex_data <- read.table(gzfile("/filepath/file.txt.gz"), header=TRUE) 

它没有读取数据。

我尝试过使用较小的文件,例如读取 file.txt 的前 100 行并重命名并加载它,它工作正常。

我什至尝试过增加 vmem?不知道该怎么办。我将不胜感激的建议/帮助。

我还检查了文件的大小。

ls -lh file.txt -rw-r--r-- 1 ... 107M 10 月 26 日 16:50 file.txt

相关内容