替换 R 中多编号、多字母单元格中的某些数字和字母?

Replace certain numbers and letters in multi-numbered, multi-lettered cells in R?

我在 R 中的数据框包含出于数据安全原因我需要更改的特定 Patient_IDs

他们都是以姓氏的第一个字母和与出生日期相对应的六位数字命名的(例如,A010590)。我只能在 R 中找到替换整个值的函数(例如,整个包 "A010590""X"),但我想在每个单元格中将字母更改为另一个字母(例如, A 到 K)和所有患者的不同数字(例如 1 到 5),即在这个“Patient_ID”列的所有行中。 (例如,如果 A->K、0->2、1->5、5->1、9->3,A010190 将变为 K252132

谁能帮帮我?提前致谢!

您可以使用 stringi::stri_replace_all_fixed:

library(stringi)

pattern = c("A", "0", "1", "5", "9")
replacement = c("K", "2", "5", "1", "3")
stri_replace_all_fixed("A010590", pattern, replacement, vectorize_all = FALSE)

# [1] "K212132"