[英]How to apply (or sapply) a function for double range of data?
我有這個功能
fun_2 <- function(x,L_inf,y){
L_inf-((L_inf-y)/
(exp(-B*(x-c(1:12))/12)))
}
B <- 0.5
問題類似於上一篇文章R:如何為函數中的一系列數據創建循環? 在這種情況下,我將對這兩個數據范圍應用fun_2
:
L_inf_range <- seq(17,20,by=0.1) #31 values
y_range <- seq(4,22,by=0.1) # 19 values
我嘗試過:
sapply(L_inf_range, function(L) fun_2(12, L_inf=L,y_range))
但不是預期的輸出。 我的預期輸出是genereted一個新的矩陣sapply
(或其他種類的功能),其中fun_2
是適用於所有的價值L_inf_range
每次的全部價值和y_range
。
基本上這將是一個矩陣,其中fun_2
是申請的每個值L_inf_range
(31個值)減去y_range
( L_inf-y
在fun_2
)各一次。
您也可以運行sapply兩次,以更改參數的順序以使其變得容易一些。
fun_2_mod <- function(y, L_inf, x = X){ fun_2(x, L_inf, y)}
sapply(y_range, function(Y){sapply(L_inf_range, fun_2_mod, y = Y)})
您可以將列表的結果列表綁定到一個數據框中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.