有誰知道一種方法可以用一個字符串作爲R中的實際方程或公式嗎?R:用公式寫成一個字符串作爲一個實際的方程
我有一個擁有異速方程的數據庫(可以用來計算/估計樹木的生物量),以及它們開發的位置和物種的信息。我還有另一個觀察到的物種的大觀察數據集;所以我循環所有這些物種和它們的位置以找到每個物種的異速生長方程,並且這些方程可以是非常不同的[這只是表明這不是一次性的練習,所以我不能使用非常具體的方法]。然後我想用我觀察的數據集(用樹的直徑和高度等)來計算生物量 - 但我不知道如何實際使用異速方程數據庫中的表達式。看下面的一個非常簡短的例子。
X Z Equation Genus Species
DBH NA 0.1731*X^(2.0296) All All
DBH NA 0.1027*X^(2.4798) All All
DBH H (-4.58643+1.90532*log10(X)+1.0646*log10(Z)) Tectona grandis
DBH H (-4.58643+1.90532*log10(X)+1.0646*log10(Z)) Tectona grandis
DBH NA 0.000189*X^(2.262) Dalbergia melanoxylon
DBH H 0.0763*X^(2.2046)*Z^(0.4918) All All
所以我們可以說我有柚木在我的觀測數據桉,我希望能夠提取-4.58643+1.90532*log10(X)+1.0646*log10(Z)
,並與我的觀察X
(直徑)和Z
(高度)使用它。
我需要某種「通用」解決方案,因爲我正在處理很多物種和許多不同的方程。我知道如何選擇實際的方程,但是我把它作爲一個因素 - 我該如何操作它?我可以嗎?
實際的'X'和'Z'數值是否在同一個數據框中?還是你在別的地方看他們?如果您在示例中包含數字「X」和「Z」,這將有所幫助。 – Marius
是,X和Z是記錄在觀測數據(與數據庫分開)中的樹直徑和高度,是數值。我認爲這對我來說並不是一個問題,因爲我實際上將它們提取出來並將它們用於一個公式中 – Geraldine
測試此:'x =「-4.58643 + 1.90532 * log10(X)+ 1.0646 * log10(Z)」; X = 2; Z = 5; eval(parse(text = x))' –