0
私はそれに約50,000の数字を持つベクトルを持っています。私は、ベクトル内の他の数が< =指定されたthresoldである各値を計算したいと思います。そして、最大値を返します。 R各値のカウント私のベクトルの他の数が指定されたthresoldの下にある
は今、私はn <- 50000
s <- 100000
win <- 1000 # my thresold
pos <- sample(s,n,replace=T)
m <- max(sapply(pos,function(x){sum(abs(pos-x)<=win)}))
をやっているしかし、それは非常に非常に遅いです...そして、私は何をする必要があるというN = 1,000,000回(シミュレーション)。このことをスピードアップする考えはありますか?
は、ここで私が何をしたいの例です:
だが、私は、ベクターの多くの数が勝利= 20の最小距離であるかを計算することができ、POSでの各値についてpos <-c(2,6,20,23,24,56,64,75,95,100)
を言ってみましょう。 だから:
2 : 2,6,20
6 : 2,6,20,23,24
20: 2,6,20,23,24
23: 6,20,23,24
24: 6,20,23,24
56: 56,64,75
64: 56,64,75
75: 56,64,75,95
95: 75,95,100
100: 95,00
そして、私はこれらのサブセット= 5(グループ6および20)の最大長
おかげ
申し訳ありませんがコードに間違いがありました(良い位置にない括弧)。今すぐ動作します –
@mtoto + 20間隔内の 'pos'ベクトルの各数値ごとに、その周りのすべての値(小と大の両方)が必要です。次に、どの値がその周りに最大のグループを持っているかを確認します。 –
おそらく 'findInterval(pos + win、pos) - findInterval(pos-win、pos)'ですか?極限でいくつかの問題がありましたが、 'pos-win'と' pos + win'の間にいくつの数値があるのでしょうか(posはソートされなければならないことに注意してください)。 – nicola