質問させてください

データフレームDFがあって
DF[, 1] にはコードが、
2列目以降は価格が入っています
2列目から501列目まで各時点の値です
行数は2000個程度です

このデータフレームから2つ選んで価格を足し合わせたいのですが
簡潔な方法はありますでしょうか?

現状は

a <- combn(DF[, 1], 2)
temp_a <- merge(t(a[,1]), DF)
temp_b <- merge(t(a[,2]), DF)

res <- temp_a[, -1] + temp_b[, -1]

でやろうかと思っていますが
データ数がデータ数なのでもっと高速な方法がありましたらご教授ください

お願いいたします