簡體   English   中英

如何為雙倍范圍的數據應用(或應用)函數?

[英]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_rangeL_inf-yfun_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM