R 如何加快这一进程?

R 如何加快这一进程?,r,sqldf,R,Sqldf,我有一个关于这对产品相似性的数据框架,例如: Product1 Product2 similarity p1 p2 0.102 p1 p3 0.221 p1 p4 0.333 ..... p2 p1 0.102 p2 p3 0.201 p2 p4

我有一个关于这对产品相似性的数据框架,例如:

   Product1   Product2  similarity   
   p1          p2         0.102
   p1          p3         0.221
   p1          p4         0.333 
   .....
   p2          p1         0.102
   p2          p3         0.201
   p2          p4         0.242 
我想为每个产品选择前10个最相似的产品,例如

product.pairs<-ddply(product.pairs, "product1", transform, rank = seq_along(product1)) 
product.pairs<-subset(product.pairs, rank<11,select=c(product1,product2))

product.pairs使用
data.table

library(data.table)

dt = data.table(your_df)

# fast sort by similarity
setkey(dt, similarity)

# pick (at most) top 10 most similar ones
dt[, Product2[max(1, .N-9):.N], by = Product1]

尝试向SQL查询添加适当的索引。搜索
创建索引