我正在尝试计算栖息地覆盖的变化,从T0
开始并基于R中的干扰发生(Disturbance_freq
)和恢复(Recovery_rate
)。我需要根据{{1}}(每个区域不同)为每个Region
循环此计算。
我的数据设置如下:
Total_Disturbance
我想计算:
Region Distur_rate Tot_dist Dist_freq Impact Recovery_Rate T0 T1
0 0.29 29 3.45 20 0.47 0.59 ?
1 0.17 17 5.88 20 0.47 0.59 ?
2 0.4 40 2.5 20 0.47 0.59 ?
等...
为此我编写了以下内容,但必须有一种更有效的方法来执行此操作:
T1 = (((T0 + Recovery_Rate x Dist_freq) - (20 x (T0 + Recovery_Rate x Dist_freq)/100))
T2 = (((T1 + Recovery_Rate x Dist_freq) - (20 x (T1 + Recovery_Rate x Dist_freq)/100))
答案 0 :(得分:0)
您的括号似乎不正确,因此您需要查看它们。但这是apply
的情况。在那里打电话给data
data$T1 <- apply(data,1,function(x) {
(((x[7] + x[6]) * x[4]) - (x[5] * (x[7] + x[6]) * x[4])/100)
})
data$T2 <- apply(data,1,function(x) {
(((x[8] + x[6]) * x[4]) - (x[5] * (x[8] + x[6]) * x[4])/100)
})