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

R:获取向量中第一个实例的索引大于变量,但用于整个列

R:获取向量中第一个实例的索引大于变量,但用于整个列,r,loops,data.table,match,sequencing,R,Loops,Data.table,Match,Sequencing,我正在尝试在data.table中创建一个新变量。它旨在获取data.table中的一个变量,并针对每个观察值将该变量与向量进行比较,然后返回向量中第一个观察值的索引,该索引大于data.table中的变量 示例 ComparatorVector <- c(seq(1000, 200000, 1000)) Variable <- runif(10, min = 1000, max = 200000) ComparatorVector一个选项是findInterval findInt

我正在尝试在data.table中创建一个新变量。它旨在获取data.table中的一个变量,并针对每个观察值将该变量与向量进行比较,然后返回向量中第一个观察值的索引,该索引大于data.table中的变量

示例

ComparatorVector <- c(seq(1000, 200000, 1000))
Variable <- runif(10, min = 1000, max = 200000)

ComparatorVector一个选项是
findInterval

findInterval(Variable, ComparatorVector) +1
#[1] 190 152  99 107  38 148 114  95  53  73

或使用
sapply

sapply(Variable, function(x) which(ComparatorVector > x)[1])
#[1] 190 152  99 107  38 148 114  95  53  73

非常感谢你的帮助!关于如何处理比较器向量中高于最后一个变量的变量,有什么建议吗?@user9504090我没听清你的问题。我试图根据帖子中的描述来回答这个问题。是的。你说得对。你所提供的应该有用。我的数据不限于最高值ComparatorVector,我想知道如何处理高于该值的观察值,但可以重新定义NA输出。@user9504090您可以
NA
替换
,因为我仍然不清楚您想要实现我的数据的逻辑(我在上面称之为
Variable
)实际上包含的观测值大于200000(我在上面的
ComparatorVector
中定义的上限).我只是想知道如何处理这些情况下您的方法的结果。但是,正如您所说,我也意识到:解决方案应该只是替换您的方法的结果,而这些结果是不正确的。