R - 用不那么复杂的东西替换唯一标识符
R - Replace unique identifiers with something less complicated
我有两个数据框,它们由一个很长的用户 ID 关联,我想用更易读的东西替换这些值,比如一个简单的整数值。显然我想让这些值在数据帧之间保持一致,我想知道是否有一种简单的方法可以做到这一点。这是 data.frames 的样子:
ArtistData - 显示用户收听特定艺术家的次数:
UserID Artist Plays
00000c289a1829a808ac09c00daf10bc3c4e223b elvenking 706
00000c289a1829a808ac09c00daf10bc3c4e223b lunachicks 538
00001411dc427966b17297bf4d69e7e193135d89 stars 373
... ... ...
UserData - 显示每个用户的信息:
UserID gender age country
00001411dc427966b17297bf4d69e7e193135d89 m 21 Germany
00004d2ac9316e22dc007ab2243d6fcb239e707d f 34 Mexico
000063d3fe1cf2ba248b9e3c3f0334845a27a6bf m 27 Poland
... ... ... ...
所以基本上,我可以用每个数据帧之间一致的整数替换这些对我来说没有意义的长字符串吗?
使用两个数据集中所有可能的 UserID
转换为具有简化标签的 factor
:
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
我有两个数据框,它们由一个很长的用户 ID 关联,我想用更易读的东西替换这些值,比如一个简单的整数值。显然我想让这些值在数据帧之间保持一致,我想知道是否有一种简单的方法可以做到这一点。这是 data.frames 的样子:
ArtistData - 显示用户收听特定艺术家的次数:
UserID Artist Plays
00000c289a1829a808ac09c00daf10bc3c4e223b elvenking 706
00000c289a1829a808ac09c00daf10bc3c4e223b lunachicks 538
00001411dc427966b17297bf4d69e7e193135d89 stars 373
... ... ...
UserData - 显示每个用户的信息:
UserID gender age country
00001411dc427966b17297bf4d69e7e193135d89 m 21 Germany
00004d2ac9316e22dc007ab2243d6fcb239e707d f 34 Mexico
000063d3fe1cf2ba248b9e3c3f0334845a27a6bf m 27 Poland
... ... ... ...
所以基本上,我可以用每个数据帧之间一致的整数替换这些对我来说没有意义的长字符串吗?
使用两个数据集中所有可能的 UserID
转换为具有简化标签的 factor
:
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