【发布时间】:2014-02-10 19:54:02
【问题描述】:
我有一个数据框
ID, VID
1 , xyz-0001
我想用 VID 列值的 md5 哈希替换 VID。
我将如何在 R 中做到这一点?我查看了digest 包,但不知道如何将其放入 R 代码中
谢谢
【问题讨论】:
我有一个数据框
ID, VID
1 , xyz-0001
我想用 VID 列值的 md5 哈希替换 VID。
我将如何在 R 中做到这一点?我查看了digest 包,但不知道如何将其放入 R 代码中
谢谢
【问题讨论】:
另一种选择是安装openssl 包并使用其MD5 散列函数。它是一个矢量化函数,与 digest 不同,因此您不必在其上使用 sapply。
library(openssl)
df$VID <- md5(df$VID)
这会将 VID 列中的字符替换为其 MD5 哈希等效项。
注意:此函数要求数据为字符类型,因此如果您想在一列整数上使用它,您需要先使用as.character 函数将它们转换为字符。
【讨论】:
包digest绝对适合这个任务,所以我们首先加载它:
library(digest)
然后创建/加载/等。测试data.framedf:
txt <-
"ID,VID
1,xyz-0001
2,abc-0987"
df <- read.table(header=T, text=txt, sep=",", stringsAsFactors=F)
df
初始数据如下:
ID VID
1 1 xyz-0001
2 2 abc-0987
然后我们可以使用函数digest指定算法:
df$VID <- sapply(df$VID, digest, algo="md5")
df
现在我们在df 中对列VID 进行了哈希处理:
ID VID
1 1 44e3a9cf85f802ef50f18e64e01c5e32
2 2 c576ff180b2046c1a3ae939766588fd3
【讨论】: