首页 > 解决方案 > 只读具有在向量中指定的行名的大文件的行 - R

问题描述

我试图在 R 中做一个相当简单的任务 - 从一个我无法读入内存的大型 .tsv 文件(4GB)我想只读取列表中定义的行名的行。行名在名为“PMID”的大文件的第一列中定义,我有一个要从大文件中提取的 PMID 列表。

我对 R 很陌生,即使我可以在 RI 中加载的文件上使用函数 match 或 %in% ,但通过读取 .tsv 文件来做同样的事情也有困难。我使用 read.table 加载大文件,但出现错误“无法分配大小为 250.0 Mb 的向量”。

大型 .tsv 文件的结构如下:

"PMID"  "au_order"  "lastname"  "firstname" "year"  "journal    type"   "city"  "state" "country"   "lat"   "lon"   "fips"
26151967    1   Lau Ying    2016    J Hum Lact  EDU Queenstown, Singapore   -   Singapore   1.299   103.787 NULL
26151969    2   Htun    Tha Pyai    2016    J Hum Lact  EDU Queenstown, Singapore   -   Singapore   1.299   103.787 NULL
26151965    3   Lim Peng Im 2016    J Hum Lact  EDU-HOS Queenstown, Singapore   -   Singapore   1.299   103.787 NULL

My_vector = c("26151969","26151965")

输出:

"PMID"  "au_order"  "lastname"  "firstname" "year"  "journal type" "city"   "state" "country"   "lat"   "lon"   "fips"
26151969    2   Htun    Tha Pyai    2016    J Hum Lact  EDU Queenstown, Singapore   -   Singapore   1.299   103.787 NULL
26151965    3   Lim Peng Im 2016    J Hum Lact  EDU-HOS Queenstown, Singapore   -   Singapore   1.299   103.787 NULL

我将非常感谢您的帮助,如果这是重复的,我深表歉意,但即使经过长时间的搜索,我也找不到到目前为止我能理解的任何答案。

标签: rsubsetlarge-filesread.table

解决方案


推荐阅读