2017-09-26 30 views
-6

我有以下數據集。當我運行下面的函數時,它只會產生一行結果。我需要爲每棵樹找到Gomp。如何在數據集上應用函數?

Tree  a  b  k 
4382  21,88 9,59 0,0538 
4383  13,93 12,94 0,0811 
4384  19,69 9,78 0,0597 
4385  20,02 8,23 0,0489 
4386  11,07 23,2 0,1276 
4387  18,35 13,29 0,0772 
4388  19,72 17,53 0,0961 
4389  26,3 5,26 0,0278 

DOY = c(1:365) 

Gomp <- data.frame(DF$a * exp (-exp(DF$b-DF$k*DOY))) 
+0

你想達到什麼目的? –

+0

我需要爲每棵樹找到Gomp – Mori

+0

爲什麼DOY 1到365,當你的df只有8條記錄? –

回答

1

我至少不太確定我是否理解正確。也許一個更好的問題可以改善的答案...

DF <- data.frame(Tree = c(4382, 4383, 4384, 5385, 4386), a = c(21.88, 13.93, 19.69, 20.02, 11.07), b = c(9.59, 12.95, 9.78, 8.23, 23.20), k = c(0.0538, 0.0811, 0.0597, 0.0489, 0.1276)) 
DOY <- c(1:365) 
DF_new <- data.frame(sapply(1:length(DF$Tree), function(x)(DF$a[x]*exp(-exp(DF$b[x]-DF$k[x]*DOY))))) 
colnames(DF_new) <- DF$Tree 

隨着sapply(申請,vapply等),就可以通過向量,列表,數據幀等循環。如果沒有1:length(DF$Tree),則使用這些值代替索引。

相關問題