השאלה היא מה אתה רוצה בדיוק לעשות. רוצה סתם להחליף באופן חד פעמי את מספרי הזיהוי במספרים אחרים יחודיים? זה עסק פשוט:
#create 1-1 mapping of true_id and anonimized_id
tmp = data.frame(true_id = sample(my_data$id),anonimized_id = 1:nrow(my_data))
# replace true id with anonimized id
my_data$id = tmp$anonimized_id[match(my_data$id,tmp$true_id)]
# now remove the mapping. the reverse mapping cannot be traced back now:
rm(tmp)
זה יפתור את בעיית האנונימיזציה הנאיבית.
אם רוצים יותר מזה (נניח להיות מסוגלים להיות מסוגלים לאחד בעתיד מקורות מידע חדשים על סמך אותו מספר זהות אמיתי) צריך להגדיר יותר טוב מה הצרכים, האם מותר לשמור את המפתח ואיפה, אולי אפשר להשתמש בהאשינג פשוט, אולי לא.
אם רוצים אפילו יותר מזה, ולעשות אנונימיזציה מלאה (למשל לוודא שאין שום משתנה אחר שדרכו אפשר לאחזר את תעודת הזהות) - זו כבר תאוריה בפני עצמה ויש חבילה בR שמספקת פתרון סביר בהחלט.
השאלה היא, כאמור, בראש ובראשונה, מה הצרכים.