2015-02-24 108 views
0

这是我的第一个R代码,它是一个非常简单的重复数据删除,但它工作得如此之慢,我简直不敢相信!我的问题是:它工作如此缓慢或者我的代码很糟糕是否正常? 这就是:R Studio中的重复数据删除

file1=c(read.delim("file.txt", header=TRUE)) 

dedupes<-0 
i<-1 
n<-1 
while (i<=100) { 

    while (n<=100) { 

    if (file1$email[i]==file1$email[n] && i!=n) { 

    #Remember amount of deduces 
     dedupes=dedupes+1 
    #Show dedupes 
     print(file1$email[i])    } 

    n<-n+1 

    } 

    n<-1 
    i<-i+1 

} 

#Show amount of dedupes 
cat("There are ", dedupes/2, " deduces") 

很多感谢, Saitam

+1

我认为最好在[代码评论](http://codereview.stackexchange.com/)上提出这样的问题 – Kiril 2015-02-24 19:09:52

+1

这样做不是简单吗:'cat(sum(duplicated(file1 $电子邮件)))'? – 2015-02-24 19:31:13

+0

不错,谢谢!我不知道那个命令duplicateated()是否有可能显示重复的名称而不是valse/true值? – saitam 2015-02-25 12:59:42

回答

0

叠瓦状循环是众所周知的是缓慢R.您需要向量化你的结石或利用现有的优化功能,如在建议BondedDust

+0

感谢您的回答,是否还有一种重复数据删除的方式,无需注意小写字母和大写字母? – saitam 2015-02-25 17:25:20