我希望我能得到一些帮助。我正在构建一个生命表,不是为了保险,而是为了生态学(任何种类的野生动物的种群横截面),所以本质上是审查诸如吸烟者/不吸烟者、怀孕、性别、健康状况等变量:
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我找到了this和this,我不确定他们是否回答了我的问题,因为这些家伙根据组减去了值。我只想逐行减去值。
另外,顺便提一句:我做了一个for(),以得到每个年龄组中幸存下来的比例。我想知道是否有其他的方法去做,或者这是否是正确的,最简单的方法。
第二个注意事项:如果有任何R-用户知道一个更容易的方法来做一个生态生命表,请告诉我!
谢谢!
发布于 2015-11-06 09:03:13
如果有包含数字的向量x,则可以使用diff函数计算差异。
在你的情况下
LifeTab1$DeathInt <- c(-diff(Sample), NA)https://stackoverflow.com/questions/33562563
复制相似问题