R 快速地加速

R 快速地加速,r,performance,apply,text-mining,R,Performance,Apply,Text Mining,我在循环中得到了以下脚本: number_of_rows_similar_addresses <- as.data.table(cbind( distinct_similar_addresses, sapply(distinct_similar_addresses, function(x) { length(similar_addresses[Original_Address == x]$people_names) / length(unique(simil

我在循环中得到了以下脚本:

number_of_rows_similar_addresses <- as.data.table(cbind(
    distinct_similar_addresses,
    sapply(distinct_similar_addresses, function(x) {
        length(similar_addresses[Original_Address == x]$people_names) / length(unique(similar_addresses[Original_Address == x]$people_names))
    })
))
类似地址:

"U 2 5 TIMPERLEY ST NICHOLLS VIC"       
"U 1 3 TIMPERLEY ST NICHOLLS VIC"                            
"U 1 11 TIMPERLEY ST NICHOLLS VIC"                            
"U 1 33 TIMPERLEY ST NICHOLLS VIC"                           
"U 1 2 TIMPERLEY ST NICHOLLS VIC"                            
"U 1 3 TIMPERLEY ST NICHOLLS VIC"                            
"U 1 5 TIMPERLEY ST NICHOLLS VIC" 
    people_names,Original_Address,Numbers,street_Name,street_type,post_code,suburb,PO,UID
Giuseppe Conte,U 1 3 TIMPERLEY ST NICHOLLS VIC,1,TIMPERLEY,ST,5469,NICHOLLS,,
Giuseppe Conte,U 1 3 TIMPERLEY ST NICHOLLS VIC,TIMPERLEY,ST,5469,NICHOLLS,,
Mario Pertini,U 2 5 TIMPERLEY ST NICHOLLS VIC,TIMPERLEY,ST,5469,NICHOLLS,,
Mario Pertini,U 2 5 TIMPERLEY ST NICHOLLS VIC,5,TIMPERLEY,ST,5469,NICHOLLS,,
脚本正在评估地址是指一个单元还是一栋房子。 有没有办法更快地完成这项任务

我添加了一个结果集和一个解释,这样它就更容易理解了

结果集:

   distinct_similar_addresses      V2
"U 2 5 TIMPERLEY ST NICHOLLS VIC"   2
"U 1 3 TIMPERLEY ST NICHOLLS VIC"   2
代码只是计算与一行地址关联的名称数。
事实上,如果地址重复,这意味着它指的是一个单元,否则它是一个单独的房子。

对于数据不便,伙计们,非常抱歉,感谢罗兰的帮助

这就是解决办法

  x <- similar_addresses[, .N, by = Original_Address] %>% select('N')
  y <- similar_addresses[, length(unique(people_names)) , by = Original_Address] %>% select('V1')
  number_of_rows_similar_addresses <- cbind(unique(similar_addresses$Original_Address), x/y)
x%select('N')
y%选择('V1')
行数\u相似\u地址谢谢Gregor,
这可能更好:

 x <- similar_addresses[, .N, by = Original_Address]$N
 y <- similar_addresses[, length(unique(people_names)) , by = Original_Address]$V1
 number_of_rows_similar_addresses <- cbind(unique(similar_addresses$Original_Address), x/y)

x给定样本数据,您的代码不可复制。你能再核对一下吗?我也不明白你所说的“剧本是在评估地址是指一个单元还是一栋房子”是什么意思。你想达到什么目的?您能为您提供的示例提供预期输出吗?我已更改了数据集并添加了一个结果集。这两个数据集都是数据。表您的最后两句话将通过
相似的\u地址[,.N,by=原始\u地址]
来解决。我建议您研究数据表vignettes。顺便说一句,请学习提供一个可复制的示例。导入数据时不能没有错误(因为某些行中缺少列)。因为您使用的是
数据.table
,特别是因为您不需要
x
y
作为数据表(向量很好),所以您可能更喜欢使用语法
[,N]
替换
%%选择('N')
。或
$N