我有一个数据框
ID, VID
1 , xyz-0001
我想将VID
替换为VID
列值的md5哈希值。
我如何在R中这样做?我查看了digest
包,但无法弄清楚如何将其放入R代码
谢谢
答案 0 :(得分:26)
包digest
绝对适合此任务,因此我们首先加载它:
library(digest)
然后创建/加载/等。测试data.frame
df
:
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
现在我们在VID
中对列df
进行了哈希:
ID VID
1 1 44e3a9cf85f802ef50f18e64e01c5e32
2 2 c576ff180b2046c1a3ae939766588fd3
答案 1 :(得分:13)
添加了redmode的答案:
library(digest)
txt <- "hello world"
hash <- digest(txt, algo="md5", serialize=F)
hash
[1]“5eb63bbbe01eeed093cb22bb8f5acdc3”
答案 2 :(得分:2)
另一个选择是安装openssl
软件包并使用其MD5哈希函数。它是向量化函数,因此与digest
不同,因此您不必在其上使用sapply。
library(openssl)
df$VID <- md5(df$VID)
这会将VID列中的字符替换为其MD5哈希等效项。
注意:此函数要求数据为字符类型,因此,如果要在整数列上使用此数据,则需要先使用as.character
函数将其转换为字符