我经常对人类参与者进行研究。 由于各种原因,我的初步标识符有时是减少数据中匿名性的信息的组合(例如,我可能连接包括完成日期和时间的字符串,IP地址和参与者提供的一些信息)。
因此,如果要以某种形式共享数据,则需要从初步ID创建清理的ID。需要清除已清理的ID以获取此类信息。 R中的简单方法只是分配连续的数字(例如,df$id <- seq(nrow(df))
其中df
是data.frame)。
但是,如果在研究的初始阶段收集更多数据或使用行,则可能会导致问题。即,每次更新原始数据集时,分配给给定参与者的清理ID可能不同。这反过来会破坏对清理数据集的后续分析,例如,可能已基于清理的ID过滤了案例。
因此,我考虑使用digest
function in the digest
package创建哈希。
df$id <- sapply(df$raw_id, digest)
这似乎导致了从原始标识符到清除标识符的可靠方式,但是对于只拥有清理标识符的任何人来说,获取原始标识符是不可能的。
但是,鉴于我对digest
函数和哈希一般都不熟悉,我想问:
digest
是否适合剥离识别信息的ID? digest
是否有任何问题?答案 0 :(得分:12)
我从上面的评论中学到了很多有用的东西。这个答案旨在提炼这些评论。
为了匿名研究参与者标识符,散列有两个问题:
因此,总结一下我收集的建议。
library(digest)
hashed_id <- function(x, salt) {
y <- paste(x, salt)
y <- sapply(y, function(X) digest(X, algo="sha1"))
as.character(y)
}
mydata$id <- hashed_id(mydata$raw_id, "somesalt1234")