3

Rで下限の上限のインデックスを見つけようとしています。これはfindIntervalが解決するのと同じ問題ですが、findIntervalは引数がソートされているかどうかをチェックします。ソートされていることがわかっているので、それを避けたいです。基になる C 関数を直接呼び出そうとしていますが、findInterval と find_interv_vec のどちらを呼び出す必要があるかについて混乱しています。また、電話をかけようとしましたが、関数が見つからないようです

findInterval2 <- function (x, vec, rightmost.closed = FALSE, all.inside = TRUE) 
{
    nx <- length(x)
    index <- integer(nx)
    .C('find_interv_vec', xt=as.double(vec), n=length(vec),
       x=as.double(x), nx=nx, as.logical(rightmost.closed),
       as.logical(all.inside), index, DUP = FALSE, NAOK=T,
       PACKAGE='base')
    index    
}

私は得る

Error in .C("find_interv_vec", xt = as.double(vec), n = length(vec), x = as.double(x),  : 
  "find_interv_vec" not available for .C() for package "base"

一方で、古い .C よりも .Call を使用する方が良いと読みました。特に .C がコピーされ、vec が非常に大きいためです。.Call への呼び出しをどのように構成すればよいですか?

ありがとう!

4

1 に答える 1