减去以前行中的值:生态可持续构造

时间:2015-11-06 08:36:16

标签: r subtraction

我希望能得到一些帮助。我正在构建一个生命表,不是为了保险,而是为了生态学(任何种类的野生动物群的横截面),所以基本上审查变量,如吸烟者/非吸烟者,怀孕,性别,健康状况,等:

AgeClass=C(1,2,3,4,5,6)
SampleSize=c(100,99,87,46,32,19)
for(i in 1:6){
+ PropSurv=c(Sample/100)
+ }
> LifeTab1=data.frame(cbind(AgeClass,Sample,PropSurv))

这给了我这个:

ID  AgeClas  Sample  PropSurv
1    1       100       1.00
2    2        99       0.99
3    3        87       0.87
4    4        46       0.46
5    5        32       0.32
6    6        19       0.19

我现在正试图计算那些在每一行中死亡的人(DeathInt),然后取出幸存者的初始数量并用低于它的数字减去它(即100-99,然后是99-87,那么87-46,依此类推)。并试着看起来像这样:

ID  AgeClas   Sample   PropSurv  DeathInt
 1     1       100       1.00       1
 2     2        99       0.99       12
 3     3        87       0.87       41
 4     4        46       0.46       14
 5     5        32       0.32       13
 6     6        19       0.19       NA

我找到thisthis,我不确定他们是否回答了我的问题,因为这些人根据群体减去了值。我只是想按行减去值。

另外,正如旁注:我做了一个for()来获得每个年龄组中幸存的比例。我想知道是否有另一种方法可以做到这一点,或者这是否是最合适,最简单的方法。

第二个注意事项:如果有任何R用户知道更简单的生态表生态表,请告诉我!

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您有包含数字的向量x,则可以使用diff函数计算差异。

在你的情况下,它将是

LifeTab1$DeathInt <- c(-diff(Sample), NA)