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查询添加适当的索引。搜索创建索引
。