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 への呼び出しをどのように構成すればよいですか?
ありがとう!