R で次の単純な関数を作成しました。
fun <- function(a,b,c,d,e){b+(c-a)*((e-b)/(d-a))}
この関数を次のdata.frame
ようなものに適用したい:
> data.frame("x1"=seq(55,75,5),"x2"=round(rnorm(5,50,10),0),"x3"=seq(30,10,-5))
x1 x2 x3
1 55 51 30
2 60 45 25
3 65 43 20
4 70 57 15
5 75 58 10
fun
個別の行ごとに適用して新しい変数を作成したいのですx4
が、ここで難しい部分があります (少なくとも私にとっては..): 引数 d と e には、次の行の値x2
を使用したいと考えています。x3
したがって、例の最初の行は次のようになりますfun(a=55,b=51,c=30,d=45,e=25)
。を使用mapply()
して各行に関数を適用できることはわかっていますが、次の行の値を使用する必要があることを mapply に伝える方法、またはmapply()
?
よろしくお願いします!