我的R应用程序从大型txt文件中读取输入数据。它不会读完整个 一次性归档。用户指定基因的名称(一次3个或4个),并根据用户输入,app转到相应的行并读取数据。
文件格式:32,000行(每行一个基因,前两列包含有关的信息 基因名称等)35,000列,数字数据(十进制数)。
我使用read.table(filename,skip = 10,000)等去右行,然后阅读 35,000列数据。然后我再次为第二个基因,第三个基因(最多4个基因)做这个 然后处理数值结果。
文件读取操作大约需要1.5到2.0分钟。我正在试验 阅读整个文件,然后获取所需基因的数据。
有什么方法可以加速这个?我可以用另一种格式重写基因数据(一种 时间处理)如果这将加速未来的阅读操作。
答案 0 :(得分:2)
如果您知道文件的确切格式,可以使用colClasses
read.table
参数来加快速度。对于2个字符列和34,998(?)个数字列,您可以使用
colClasses = c(rep("character",2), rep("numeric",34998))
答案 1 :(得分:2)
如果您使用数据库接口,这将更有效。通过RODBC
包可以使用多个,但是与R选项特别完善的选项是sqldf
包,默认情况下使用SQLite。然后,您就可以使用数据库的索引容量来查找正确的行,并在一次操作中读取所有列。