【发布时间】:2021-10-13 22:04:36
【问题描述】:
我有大约 10,000 名患者的医疗数据。我想用每个患者的唯一 ID 替换他们的 ID/社会安全号码 (Patient_SSN)。请注意,某些行具有相同的参与者 SSN,这是因为数据存储在访问级别。换句话说,每次访问都存储在一个新行中(即具有不同的日期),例如 'Mary' 和 'John' 数据。
Patient_Name = c("Alex", "Mary", "Sarah", "John", "Susan", "Jessica", "Sarah", "Karen", "Mary", "John")
Patient_SSN = c(1234, 43251, 9320, 2901, 3229, 4291, 9320, 9218988, 43251 , 2901)
Visit_Date = c('10_21', '10_21', '10_25', '10_25','10_26','10_27','10_28','10_28','10_28' ,'10_29')
BMI = runif(10, min=12, max =25);
data_hospital = data.frame(Patient_Name, Patient_SSN, BMI, Visit_Date)
我的问题是:如何用新 ID 替换每个 SSN 以保护参与者隐私,但请记住,有些行具有相同的 SSN?新 SSN/ID 的字符长度应与原始 Patient_SSN 字符的长度相同。提前感谢您的帮助。
【问题讨论】:
-
这篇文章只显示单个数字(似乎是序列),而不是随机数字 - 如果可能的话,我正在寻找相同长度的 Patient_SSN。谢谢。
-
data_hospital %>% mutate(NEW_ID = sample(5000)[group_indices(.,Patient_SSN)])
-
我更新了答案,使 Patient_SSN 与 newid 的比例为 1:1,并且长度匹配。
标签: r