我需要向数据集中的每一行添加指纹,以便检查同一组的更高版本以查找差异。
我知道如何为 R 中的每一行添加哈希,如下所示:
data.frame(iris,hash=apply(iris,1,digest))
我正在学习使用dplyr
由于数据集变得越来越大,我需要将它们存储在 SQL Server 中,我尝试了如下所示的操作,但哈希不起作用,所有行都给出相同的哈希:
iris %>%
rowwise() %>%
mutate(hash=digest(.))
使用 dplyr 进行行式散列有什么线索吗?谢谢!
我们可以使用do
res <- iris %>%
rowwise() %>%
do(data.frame(., hash = digest(.)))
head(res, 3)
# A tibble: 3 x 6
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species hash
# <dbl> <dbl> <dbl> <dbl> <fctr> <chr>
#1 5.1 3.5 1.4 0.2 setosa e261621c90a9887a85d70aa460127c78
#2 4.9 3.0 1.4 0.2 setosa 7bf67322858048d82e19adb6399ef7a4
#3 4.7 3.2 1.3 0.2 setosa c20f3ee03573aed5929940a29e07a8bb
请注意,在apply
过程中,所有列都转换为单个类,如下所示apply
转换为matrix
矩阵只能容纳一个类。将会有关于转换的警告factor
to character
class
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)