我正在探索如何更有效地比较R中的两个数据帧,我想出了哈希.
我的计划是使用digestin digestpackage 为两个具有相同列的数据帧中的每一行数据创建哈希,并且我认为对于任何2个相同的数据行,哈希应该是相同的.
我尝试使用以下代码为每行数据提供唯一的哈希值:
for (loop.ssi in (1:nrow(ssi.10q3.v1)))
{ssi.10q3.v1[loop.ssi,"hash"] <- digest(as.character(ssi.10q3.v1[loop.ssi,]))
print(paste(loop.ssi,nrow(ssi.10q3.v1),sep="/"))
flush.console()
}
Run Code Online (Sandbox Code Playgroud)
但这很慢.
我在比较数据帧时的方法是否正确?如果是,是否有任何关于加快上述代码的建议?谢谢.
UPDATE
我已经更新了以下代码:
ssi.10q3.v1[,"uid"] <- 1:nrow(ssi.10q3.v1)
ssi.10q3.v1.hash <- ddply(ssi.10q3.v1,
c("uid"),
function(df)
{df[,"uid"]<- NULL
hash <- digest(as.character(df))
data.frame(hash=hash)
},
.progress="text")
Run Code Online (Sandbox Code Playgroud)
我uid为"独特"目的自行生成了一个专栏.