我已經創建了下面的簡單函數的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
和來自下一行的。因此,對於示例的第一行將意味着:fun(a=55,b=51,c=30,d=45,e=25)
。我知道我可以使用mapply()
來爲每一行應用一個函數,但我不知道如何告訴它應該使用下一行中的某些值,或者我是否應該尋找與mapply()
不同的方法?
非常感謝提前!
怎麼樣的最後一排? 'a = 75,b = 58,c = 10',d和e是? – Arun 2013-03-21 16:05:42
好點!假設'd = X2 + 2(so 60)'和'e = 0'。 (對於我的項目,最後一行實際上並不感興趣) – Rob 2013-03-21 16:12:53