sql – 在R中选择表中的行的快速方法?

我正在寻找一种从更大的表中提取大量行的快速方法.我的表顶部如下:
> head(dbsnp)

      snp      gene distance
rs5   rs5     KRIT1        1
rs6   rs6   CYP51A1        1
rs7   rs7 LOC401387        1
rs8   rs8      CDK6        1
rs9   rs9      CDK6        1
rs10 rs10      CDK6        1

尺寸:

> dim(dbsnp)
[1] 11934948        3

我想选择列表中包含rownames的行:

> head(features)
[1] "rs1367830" "rs5915027" "rs2060113" "rs1594503" "rs1116848" "rs1835693"

> length(features)
[1] 915635

毫不奇怪,执行此temptable = dbsnp [features,]的直接方式需要相当长的时间.

我一直在研究如何通过R中的sqldf包来实现这一点.我认为这可能会更快.不幸的是,我无法弄清楚如何在sql中选择具有某些rownames的行.

谢谢.

解决方法

大多数人最初尝试的方式是:
dbsnp[ rownames(dbsnp) %in% features,]  # which is probably slower than your code

因为你说这需要很长时间,我怀疑你已经超过你的RAM容量并开始使用虚拟内存.你应该关闭你的系统,然后只用R作为正在运行的应用程序重新启动,看看你是否可以避免“虚拟化”.

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...