首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >相对增长率计算--计算所有观测的增长2-增长1

相对增长率计算--计算所有观测的增长2-增长1
EN

Stack Overflow用户
提问于 2018-04-10 16:13:28
回答 1查看 461关注 0票数 1

我试图计算出13000棵树的相对生长率,我们对其进行了9年的测量。我想计算以下公式:

RGR =(lnGrowthT2-ln GrowthT1)/(t2-t1)

因此,时间2的增长日志减去时间1的日志增长,我可以对单个树数据进行这一操作。但是,我无法在原始的data.frame中创建RGR列,增长已经用log函数(cvallog)转换了。

我的数据:

代码语言:javascript
复制
 Subset1= data[data$Id== 1|data$Id==2,]
 > Subset1
    Id          Tree replicate        cval      cvallog
1    1 A_12N_A1_ABBA      2009 0.029224666 -3.532742212
2    2 A_12N_A2_BEAL      2009 0.007306166 -4.919036573
65   1 A_12N_A1_ABBA      2010 0.317308712 -1.147880124
66   2 A_12N_A2_BEAL      2010 0.459960580 -0.776614488
134  1 A_12N_A1_ABBA      2011 0.653251467 -0.425793129
135  2 A_12N_A2_BEAL      2011 1.040621151  0.039817795
198  1 A_12N_A1_ABBA      2012 0.794725631 -0.229758343
199  2 A_12N_A2_BEAL      2012 2.042820623  0.714331511
262  1 A_12N_A1_ABBA      2013 0.735415424 -0.307319736
263  2 A_12N_A2_BEAL      2013 2.189564416  0.783702627
333  1 A_12N_A1_ABBA      2014 0.942966706 -0.058724303
334  2 A_12N_A2_BEAL      2014 3.135083588  1.142655836
397  1 A_12N_A1_ABBA      2015 0.587495498 -0.531886697
398  2 A_12N_A2_BEAL      2015 3.631681108  1.289695656
463  1 A_12N_A1_ABBA      2016 0.995382216 -0.004628479
464  2 A_12N_A2_BEAL      2016          NA           NA
527  1 A_12N_A1_ABBA      2017 0.951695307 -0.049510351
528  2 A_12N_A2_BEAL      2017 3.394292628  1.222095382

这是一棵树的代码:

代码语言:javascript
复制
Subset1= data[data$Id== 1,]  
###create the t1 and 2 t2 columns

Subset1$t1=Subset1$cvallog # create a t1 column
t2=as.data.frame((Subset1$cvallog)[-1])# remove first observation, crate a   t2 column 
t2= as.vector (rbind (t2,  0))
Subset1$t2 = t2  #add t2 to main data.frame so to  have t1 and t2 on the same row.
replicate_t2=as.data.frame((Subset1$replicate)[-1])# remove first observation, crate a t2 column 
replicate_t2= as.vector (rbind (replicate_t2,  0))
Subset1$replicate_t2 = replicate_t2

#calculate RGR  Relative growth
Subset1$RGR = ((Subset1$t2)- (Subset1$t1))/ ((Subset1$replicate_t2)-Subset1$replicate)  #difference between log values divided by 1 because we have 1 year interval

当我试图在带有拆分函数的循环中这样做时,我不能用所有的树创建一个最终的输出。

代码语言:javascript
复制
uniqTree <- (split(data, data$Tree))

for (i in 1:length(uniqTree)){
temp =data[data$Id== i,]
temp$t1=temp$cvallog #create t1 column

t2=as.data.frame((temp$cvallog)[-1]) #create t2 column
t2= as.vector (rbind (t2,  0))
temp$t2 = t2
replicate_t2=as.data.frame((temp$replicate)[-1])# remove first observation, crate a t2_replicate column 
replicate_t2= as.vector (rbind (replicate_t2,  0))
temp$replicate_t2 = replicate_t2


#calculate RGR  Relative growth
temp$RGR  = NULL
temp$RGR  = ((temp$t2)- (temp$t1))  / (temp$replicate_t2-temp$replicate)
print(temp$RGR)
}

谢谢你的帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-10 21:25:01

如果使用dplyr

df %>% arrange(Tree,replicate) %>% group_by(Tree) %>% mutate(rt = (cvallog-lag(cvallog))/(replicate-lag(replicate)))

其中df

df = read.table(text= " Id Tree replicate cval cvallog 1 1 A_12N_A1_ABBA 2009 0.029224666 -3.532742212 2 2 A_12N_A2_BEAL 2009 0.007306166 -4.919036573 65 1 A_12N_A1_ABBA 2010 0.317308712 -1.147880124 66 2 A_12N_A2_BEAL 2010 0.459960580 -0.776614488 134 1 A_12N_A1_ABBA 2011 0.653251467 -0.425793129 135 2 A_12N_A2_BEAL 2011 1.040621151 0.039817795 198 1 A_12N_A1_ABBA 2012 0.794725631 -0.229758343 199 2 A_12N_A2_BEAL 2012 2.042820623 0.714331511 262 1 A_12N_A1_ABBA 2013 0.735415424 -0.307319736 263 2 A_12N_A2_BEAL 2013 2.189564416 0.783702627 333 1 A_12N_A1_ABBA 2014 0.942966706 -0.058724303 334 2 A_12N_A2_BEAL 2014 3.135083588 1.142655836 397 1 A_12N_A1_ABBA 2015 0.587495498 -0.531886697 398 2 A_12N_A2_BEAL 2015 3.631681108 1.289695656 463 1 A_12N_A1_ABBA 2016 0.995382216 -0.004628479 464 2 A_12N_A2_BEAL 2016 NA NA 527 1 A_12N_A1_ABBA 2017 0.951695307 -0.049510351 528 2 A_12N_A2_BEAL 2017 3.394292628 1.222095382" )

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49758393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档