R:如何将一组整数映射到另一组整数
我有一个数据集,每个人都有一个唯一的个人ID。我感兴趣的是将这些ID号转换为另一组更易于管理的类型R:如何将一组整数映射到另一组整数,r,integer,R,Integer,我有一个数据集,每个人都有一个唯一的个人ID。我感兴趣的是将这些ID号转换为另一组更易于管理的类型integerID ID <- c(59970013552, 51730213552, 1233923, 2949394, 9999999999) 我这样做的原因是我的分析需要as.integer(ID),而R会强制大整数变成NA。我已尝试从bit64包中使用as.integer64,但类integer64与我的分析不兼容 我也曾想过只要做ID-min(ID)+1就可以绕过庞大的ID号。但这
integer
ID
ID <- c(59970013552, 51730213552, 1233923, 2949394, 9999999999)
我这样做的原因是我的分析需要as.integer(ID)
,而R会强制大整数变成NA
。我已尝试从bit64
包中使用as.integer64
,但类integer64
与我的分析不兼容
我也曾想过只要做
ID-min(ID)+1
就可以绕过庞大的ID号。但这也不起作用,因为我的一些较大的ID太大了,即使我减去min(ID)
值,as.integer(ID)
仍将强制它们为NA
这应该是重复的,但我找不到相关的答案,因此发布了答案
我们可以使用match
match(ID, unique(ID))
#[1] 1 2 3 4 5
或者将ID
与级别一起转换为因子
s
as.integer(factor(ID, levels = unique(ID)))
#[1] 1 2 3 4 5
非常感谢。你能告诉我怎么用这个来映射ID2啊..我想我知道了。这只是匹配(ID2,唯一(ID))
@Adrian yep。应该这样做。
as.integer(factor(ID, levels = unique(ID)))
#[1] 1 2 3 4 5