R - 将唯一标识符替换为不太复杂的标识符



我有两个数据框,它们由一个很长的用户 ID 相关联,我想用更易读的东西替换这些值,比如一个简单的整数值。显然,我想在数据帧之间保持这些值的一致性,我想知道是否有一种简单的方法可以做到这一点。以下是 data.frame 的外观:

艺术家数据 - 显示用户收听特定艺术家的次数:

UserID                                     Artist      Plays
00000c289a1829a808ac09c00daf10bc3c4e223b   elvenking   706
00000c289a1829a808ac09c00daf10bc3c4e223b   lunachicks  538
00001411dc427966b17297bf4d69e7e193135d89   stars       373
...                                        ...         ...

用户数据 - 显示每个用户的信息:

UserID                                     gender   age  country
00001411dc427966b17297bf4d69e7e193135d89   m        21   Germany
00004d2ac9316e22dc007ab2243d6fcb239e707d   f        34   Mexico
000063d3fe1cf2ba248b9e3c3f0334845a27a6bf   m        27   Poland
...                                        ...      ...  ...

所以基本上,我可以用每个数据帧之间一致的整数替换这些对我来说没有意义的长字符串吗?

使用

两个数据集中所有可能的UserID转换为带有简化标签的 factor s:

levs <- union(UserData$UserID, ArtistData$UserID)
ArtistData$newid <- factor(
  ArtistData$UserID, levels=levs, labels=seq_along(levs)
)
UserData$newid <- factor(
  UserData$UserID, levels=levs, labels=seq_along(levs)
)
ArtistData
#                                    UserID     Artist Plays newid
#1 00000c289a1829a808ac09c00daf10bc3c4e223b  elvenking   706     4
#2 00000c289a1829a808ac09c00daf10bc3c4e223b lunachicks   538     4
#3 00001411dc427966b17297bf4d69e7e193135d89      stars   373     1
UserData
#                                    UserID gender age country newid
#1 00001411dc427966b17297bf4d69e7e193135d89      m  21 Germany     1
#2 00004d2ac9316e22dc007ab2243d6fcb239e707d      f  34  Mexico     2
#3 000063d3fe1cf2ba248b9e3c3f0334845a27a6bf      m  27  Poland     3

最新更新