Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.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 - Fatal编程技术网

使用R查找大量值的最快方法是什么?

使用R查找大量值的最快方法是什么?,r,R,我有一个超过1000000个数字的列表。我有一个包含一系列数字和一个类别的查找表。例如,0-200为A类,201-650为B类(范围长度不相等) 我需要简单地遍历1000000个数字的列表,得到1000000个相应类别的列表 编辑: 例如,我的列表的前几个元素是-100125.51807.5345.2,它应该返回类似于1,1,8,4的类别。映射的逻辑在一个函数-categoryLookup(cd)中实现,我使用以下命令来获取类别 cats <- sapply(list.cd, catego

我有一个超过1000000个数字的列表。我有一个包含一系列数字和一个类别的查找表。例如,0-200为A类,201-650为B类(范围长度不相等)

我需要简单地遍历1000000个数字的列表,得到1000000个相应类别的列表

编辑:

例如,我的列表的前几个元素是-100125.51807.5345.2,它应该返回类似于1,1,8,4的类别。映射的逻辑在一个函数-
categoryLookup(cd)
中实现,我使用以下命令来获取类别

cats <- sapply(list.cd, categoryLookup)
cats数字:

numbers <- sample(1:1000000)

数字也许可以查看一下
?cut
及其参数
breaks
label
?要获得更具体的答案,请在问题中更具体一些,即发布一个可复制的最小示例:包括“列表”和“查找表”的最小版本,即所需结果,并显示您尝试过的代码。您的数字仅为整数吗?哦,您的边界仅为整数吗?在您的示例中,您给出了不重叠的边界(即200.5?A或B会发生什么情况?),请提供一个最小的、自包含的示例。检查这些链接,了解一般的想法,以及如何在R:、、和中执行。但是,您的解决方案假设
数字
是整数,而
数字
可能是一个未排序的数字向量,OP需要根据它们所属的范围将其分类到组中。我想应该由OP提供更多关于他们所拥有和期望的细节。:)你又是对的。在这种情况下,类似于
组[上限(数字)]
的功能应该可以发挥作用。。如果起点/终点本身可以是非整数,那么我将不得不考虑另一种解决方案。但我会先等待OP的回应。
groups <- sort(rep(letters, 40000))
categories <- groups[numbers]
ranges <- data.frame(group=c("A","B","C"),
                     start=c(0,300001,600001),
                     end=c(300000,600000,1000000)
                    )

ranges
  group  start   end
1     A      1 3e+05
2     B 300001 6e+05
3     C 600001 1e+06

# if groups are sorted and don't overlap:
groups <- rep(ranges$group, (ranges$end-ranges$start)+1)
categories <- groups[numbers]