0

コード例:

x <- c(10,15,21,24,32,48,56,78,87,98)
y <- c(2,3,4,5,2.1,3.1,1,1.5,1.9,2.6)
df <- data.frame(x,y)
df

申し訳ありませんが、コーディングは比較的新しいです。昨夜、10 ユニット セグメントごとに最大の Y を見つけることで、大きなデータ フレームを絞り込むのに役立ちましたが、それがエラーにつながる可能性があることが判明しました。

申し訳ありませんが、私はまだプログラミング全般に比較的慣れていません。

したがって、たとえば y > 1.91 のしきい値があります。X の範囲が 10 単位の場合、最大の Y を見つけるにはどうすればよいですか? したがって、私の考えでは、max(y) > しきい値を見つけてから、10 単位以内のすべての x 行を削除します。次に、2 番目に高い y (しきい値よりも大きい必要があります) を見つけ、10 単位内のすべての x を削除します。しきい値を超え、互いに少なくとも 10 単位離れているすべての値のリストが得られるまで、これを行います。

これをコーディングするのを手伝ってもらえますか?

4

1 に答える 1

1

I'm not sure that I understand your question. Is this what you are trying to do?

require(data.table)
dt <- data.table(df)
threshold <- 1.91
dt <- dt[y>threshold, ]
ans <- dt[0,]

while (nrow(dt)>0){
  ans <- rbindlist(list(ans, dt[which.max(y),]))
  xval <- ans[nrow(ans),x]
  dt <- dt[x<(xval-10)|x>(xval+10)]
}
ans
于 2013-10-15T06:50:13.050 に答える