Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:如何将一组整数映射到另一组整数_R_Integer - Fatal编程技术网

R:如何将一组整数映射到另一组整数

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号。但这

我有一个数据集,每个人都有一个唯一的个人ID。我感兴趣的是将这些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