将 ID 替换为基于单独 "ID code" 的 ID
Replace IDs with IDs based on a separate "ID code"
我有这样的数据:
df <- data.frame(ID = c(11243, 11243, 12335, 12335, 13288), x1 = seq(1, 5), x2
= seq(42, 46))
我想根据存储在另一个 DF 中的转换 "code" 将 df
中的 "original" ID 更改为 "new IDs":
code <- data.frame(orig_ID = c(11243, 12335, 13288), new_ID = c(1, 2, 3))
df
最后应该是这样的(替换了 ID):
df <- data.frame(ID = c(1, 1, 2, 2, 3), x1 = seq(1, 5),
x2 = seq(42, 46))
非常感谢任何帮助!
我们可以使用match
df$ID <- code$new_ID[match(df$ID, code$orig_ID)]
使用 dplyr()
,如果需要,您可以保留 new_ID 删除 select()
library(dplyr)
df %>% left_join(code,by = c("ID" = "orig_ID")) %>% mutate(ID = new_ID) %>% select(-new_ID)
我有这样的数据:
df <- data.frame(ID = c(11243, 11243, 12335, 12335, 13288), x1 = seq(1, 5), x2
= seq(42, 46))
我想根据存储在另一个 DF 中的转换 "code" 将 df
中的 "original" ID 更改为 "new IDs":
code <- data.frame(orig_ID = c(11243, 12335, 13288), new_ID = c(1, 2, 3))
df
最后应该是这样的(替换了 ID):
df <- data.frame(ID = c(1, 1, 2, 2, 3), x1 = seq(1, 5),
x2 = seq(42, 46))
非常感谢任何帮助!
我们可以使用match
df$ID <- code$new_ID[match(df$ID, code$orig_ID)]
使用 dplyr()
,如果需要,您可以保留 new_ID 删除 select()
library(dplyr)
df %>% left_join(code,by = c("ID" = "orig_ID")) %>% mutate(ID = new_ID) %>% select(-new_ID)