2

我的 R 应用程序从大型 txt 文件中读取输入数据。它不会一次读取整个文件。用户指定基因的名称(一次 3 或 4 个)并根据用户输入,应用程序转到相应的行并读取数据。

文件格式:32,000 行(每行一个基因,前两列包含基因名称等信息) 35,000 列数字数据(十进制数)。

我使用 read.table (filename, skip=10,000 ) 等转到正确的行,然后读取 35,000 列数据。然后我对第 2 个基因、第 3 个基因(最多 4 个基因)再次执行此操作,然后处理数值结果。

文件读取操作大约需要 1.5 到 2.0 分钟。我正在尝试阅读整个文件,然后获取所需基因的数据。

有什么办法可以加速这个?如果将来可以加速读取操作,我可以以另一种格式(一次处理)重写基因数据。

4

2 回答 2

2

如果您使用数据库接口,这将更有效。该包有几个可用的RODBC,但一个特别好的与-R 集成的选项是sqldf默认使用 SQLite 的包。然后,您将能够使用数据库的索引容量来查找正确的行并在一次操作中读取所有列。

于 2013-06-27T16:42:10.330 回答
2

如果您知道文件的确切格式,您可以使用colClasses参数来read.table加快速度。对于 2 个字符列和 34,998 (?) 个数字列,您将使用

colClasses = c(rep("character",2), rep("numeric",34998))
于 2013-06-27T16:35:50.410 回答