0
我只是想寫一個R函數,它給了我這個表達式的迴歸函數:y〜(k,l,m,n)。這些字母代表非線性函數中的參數。當我以封閉形式(y〜())寫模型時,這個R函數應該從模型中提取回歸函數。它可以是任何具有兩個或更多參數的非線性函數。任何人都可以幫助我如何做到這一點?從公式中獲得迴歸函數R
我只是想寫一個R函數,它給了我這個表達式的迴歸函數:y〜(k,l,m,n)。這些字母代表非線性函數中的參數。當我以封閉形式(y〜())寫模型時,這個R函數應該從模型中提取回歸函數。它可以是任何具有兩個或更多參數的非線性函數。任何人都可以幫助我如何做到這一點?從公式中獲得迴歸函數R
我覺得你的關鍵是得到一個公式,將解析
你不能只是有y~(a,b,d)
,你需要一些函數名,即y ~ f(a, b, d)
然後你可以使用all.vars
提取變量名並建立模型矩陣和寫你的擬合函數
如
all.vars(y ~ f(a,b,d))
## [1] "y" "a" "b" "d"
# get the response
as.character(y ~ f(a,b,d))[2]
## [1] "y"
您可以使用這些從搜索路徑中提取對象
非常感謝!我很抱歉。括號前我忘了放置函數。 –
其實我還沒有嘗試過任何東西。我只是看看R中的nls函數。我試圖理解它在這個函數中是如何處理的。 –
我需要一些R如下所示:cll < - formula [[length(formula)]] func < - get(as.character(cll [[1L]])) if(!is.null( pn < - attr(func,「pnames」))) as.character(as.list(match.call(func,call = cll))[ - 1L] [pn]) –
* ?你的意思是健康嗎?或者你是從一個'nls'對象中提取,還是試圖編寫你自己的'nls'版本? – mnel