IがI [i]が(私は、C [I] =のFUNCことをSTAT.VECTORSカラムCを追加する必要がある2つの列AおよびB 有するデータフレームSTAT.VECTORSを有するRR:他の列の値に基づいて列を計算する方法は?
に新しい午前、B [i])
Rでこれを行う最も構文的に効率的な方法は何ですか? C [I] =のFUNC(A [I-1]、B [I-2])現像背景を持つ
、Iはループを作成して値を割り当てることになるように溶液を延長する
任意の方法C.に私はR :)
UPDATE
私の質問に手の込んだする必要があり、次の例から、より良い期待しています。ループは、現在の行を基準にして特定の要素を選択し、それらを関数に渡します。
適用ファミリを使用してループなしで以下のループロジックを実行できますか?
l=50
func=function(x,y){return(y-x)}
a=sample(1:6,l,replace = T)
b=sample(1:6,l,replace = T)
c=sample(1:6,l,replace = T)
d=sample(1:6,l,replace = T)
e=sample(1:6,l,replace = T)
f=vector("numeric",l)
test.data = cbind(a,b,c,d,e,f)
for(i in 2:l)
{
test.data[i,"f"]= func(test.data[i,"d"],test.data[i-1,"b"])
}
test.data
は、基本的には、[ファミリを適用](http://stackoverflow.com/questions/3505701/r-grouping-functions-sapply-vs-lapply-vs-apply-vs-tapply-を検討する必要がありますvs-by-vs-aggrega)関数 – Sotos
@Sotos:apply family関数で要件を処理する方法を見つけることができません。関数applyは、どの正確な要素インデックスが関数パラメータになるかを選択することはできません。私の場合、f(a、b)!= f(b、a)TheRimalayaへの私の返信を参照してください –
必要なインデックスを持つ別々のベクトルを作成し、 'apply'関数で使用するかもしれません。問題の詳細と具体的な例を提示しない限り、私たちはあなたをさらに助けることはできません。 – Sotos