循环计算

时间:2016-01-29 01:26:13

标签: r loops

我正在尝试计算栖息地覆盖的变化,从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))

1 个答案:

答案 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)
    })