0

良い一日、

私はかなり大きなデータセット (1k ブートストラップ内で最大 300k 行) に取り組んでおり、退屈なループを回避するために懸命に努力しています。データ フレームの行ごとに、列の 1 つからベクトルを抽出し、その最小値を決定する必要があります。ベクトルの長さは、別の列の値によって決まります。

小さな例:

dat <- data.frame(temp = rnorm(10, 10, 2), 
                  start = c(1:10), 
                  end = c(3, 3, 4, 6, 6, 9, 9, 9, 10, 10))

temp を抽出元の列とすると、最初の行について、コードは temp[1:3] を抽出し、その最小値を推定する必要があります。9 行目では、temp[9:10] が抽出され、その最小値が計算されます。次に、最小値のベクトルが新しい列としてデータ フレームに追加されます。

どんな提案でも大歓迎です。ありがとうございました!

4

3 に答える 3

0

@Konradの回答は素晴らしいですが、楽しみのために、使用することもできますapply

apply(dat, 1, function(x) min(dat$temp[x[2]:x[3]]))

またはこのように

apply(dat, 1, function(x) min(dat$temp[x["start"]:x["end"]]))
于 2013-07-20T17:31:20.437 に答える